배경 : 폼에 제공된 사용자 입력을 기반으로 데이터베이스에 사용자를 등록하고 임의로 자동 생성하는 winForm 응용 프로그램이 있습니다. 암호 및 사용자 이름을 입력하고 선택한 마케팅 회사를 기반으로 응용 프로그램을 가져올 링크를 전자 메일로 보냅니다.VB.NET을 사용하는 ASP.NET - ListBox의 MultiSelect 또는 AutoPostback이 활성화 된 CheckBoxList
문제 : autopostback이 true로 설정된 채울 수있는 목록 상자가 있지만 lb 케리어를 클릭하자마자 번들 목록 상자가 채워지고 둘 이상의 이동 통신사를 선택할 수 없습니다.
다시 게시 기능을 사용하여 다중 선택을 허용하는 방법에 대한 아이디어가 있습니까? default.aspx에에
코드 : default.aspx.vb에
<td class="style1">
Carriers:</td>
<td bgcolor="#ffffff" class="style2">
<asp:ListBox AutoPostback="true" ID="lbCarriers" runat="server" Height="86px" Width="250px">
</asp:ListBox>
</td>
</tr>
<td class="style1">
Bundles:</td>
<td bgcolor="#ffffff" class="style2">
<asp:ListBox ID="bundles" runat="server" Height="86px" Width="250px">
</asp:ListBox>
</td>
</tr>
코드 :보고에 대한
Protected Sub lbCarriers_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles lbCarriers.SelectedIndexChanged
Dim splt() As String
Dim ac1 As Array
bundles.Items.Clear()
Dim item As ListItem = lbCarriers.SelectedItem
splt = item.ToString().Split("|")
ac1 = proxy.GetContractingBundles("test", "test", Trim(splt(0)))
For Each Pitem In ac1
bundles.Items.Add(Trim(splt(2)) & " | " & Pitem.FormBundleName)
Next
End Sub
감사
다음은 인터페이스의 스크린 샷입니다!
나는 쉬운 방법이 없다고 생각합니다. 컨트롤이 항목을 선택했는지 알 수있는 방법이 없습니다. 'autopostback = false'를 넣고 자신의 자바 스크립트 코드를 연결하여 텍스트 박스가 포커스를 잃었을 때 포스트 백을 일으킬 수 있습니다. 나는 이것이 사용자 경험 관점에 이상적이라고 생각하지 않습니다. 또는 AJAX를 사용하여 다음 텍스트 상자를 채울 수도 있지만 당연히 많은 오버 헤드가 추가됩니다. 마지막으로, 텍스트 상자를 다음 텍스트 상자가 포함 된 업데이트 패널의 트리거로 사용할 수 있습니다. 귀하의 답변에 대해 – Prescott