드롭 다운 목록에서 선택한 항목을 가져 와서 버튼을 누르고 해당 항목을 GridView에 추가하여 사용자가 볼 수있게하려고합니다. 현재 + 버튼을 누르면 격자가 표시되지만 셀은 비어 있습니다. 어떤 제안?ASP GridView에 드롭 다운 목록 항목 추가
ASP 코드 :
<tr>
<td valign="top" colspan="2">
<b>Agents Visited</b><br />
<asp:DropDownList SelectionMode="Multiple" runat="server" ID="agentsDropdown" Name="agentsDropdown" width="425"></asp:DropDownList>
</td>
<td valign="top">
<br />
<asp:Button id="agentButton" name="agentButton" runat="server" Text="+" OnClick="AddAgent" CssClass="buttonstyle" onmouseover="shade(this);" onmouseout="unshade(this);" />
</td>
</tr>
<tr>
<asp:GridView ID="agentGridView" Visible="False" AllowSorting="False" AllowPaging="False" Runat="server" AutoGenerateColumns="False" PageSize="20" >
<Columns>
<asp:TemplateField HeaderText="Agent">
<ItemTemplate>
<asp:Label ID="agentName" runat="server" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
<asp:Label ID="agentValue" runat="server" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
</tr>
초기의 GridView 바인딩 :
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack
agentGridView.DataSource = Nothing
agentGridView.Databind()
End If
End Sub
추가 코드 뒤에이 :
Protected Sub AddAgent(sender As Object, e As EventArgs)
If agentsDropdown.SelectedIndex > 0 Then
Dim dt As New DataTable
dt.Columns.Add("agentName")
dt.Columns.Add("agentValue")
Dim row1 As DataRow = dt.NewRow
row1.Item("agentName") = agentsDropdown.SelectedItem.Text.ToString()
row1.Item("agentValue") = agentsDropdown.SelectedValue.ToString()
dt.Rows.Add(row1)
agentGridView.DataSource = dt
agentGridView.DataBind()
agentsDropdown.SelectedIndex = 0
Dim agentRowsCount as Integer = agentGridView.Rows.Count
If agentRowsCount > 0
agentGridView.Visible = True
End If
End If
End Sub
당신이 코드를 밟았다. 여기에서 추측 할 수 있지만 여기에 올 때마다 새로운 데이터 테이블을 계속 작성하십시오. 선택을 할 때 선택된 인덱스 변경 이벤트가 발생합니까? 왜냐하면 당신의 코드에서 여기 다시 agent Dropdown.SelectedIndex = 0을 설정했기 때문입니다. 다시 그것을 해고하고 새로운 빈 테이블을 생성 할 수 있습니다. 네가 여기 두 번 들어올 지보십시오. – sjramsay
저는 Visual Studio에서 현재 일하고 있지 않습니다. 따라서 코드를 단계별로 실행하는 것은 고통입니다. 그러나 SelectedIndex = 0을 주석 처리하면 아무 것도 변경되지 않습니다. – niclake