1

グリッドビュー内にドロップダウンリストがあります。ボタンをクリックすると、ドロップダウンリストの値を確認できるようになりました。グリッドビューのrowcommandイベントを発生させましたが、デバッガーはそこに到達できません..助けてください..私のコードは

  Protected Sub grd_Test_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grd_Test.RowCommand
    If e.CommandName = "Select" Then


     End If
End Sub

私のソースコードは

   <asp:GridView ID="grd_UnAssignProperties" runat="server" AutoGenerateColumns="False"><Columns>
                    <asp:TemplateField HeaderText="Assign To">
                        <ItemTemplate>
                            <asp:DropDownList ID="drp_UnAssignProp" runat="server">

                            <asp:ListItem  Value="" >Default</asp:ListItem>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns></asp:GridView><tr><td><asp:Button ID="btn_Save" runat="server" CommandName="Select" Text="Submit"  />
4

3 に答える 3

1

試す

  string val = (DropDownList)GridView1.Rows[e.RowIndex].Cells[0]
               .FindControl("drp_UnAssignProp").SelectedValue;
于 2014-05-09T15:43:50.943 に答える
1

これを試して

DropDownList ddl = (DropDownList)GridView1.Rows[e.RowIndex].Cells[0].FindControl("drp_UnAssignProp");
string val = ddl.SelectedValue;
于 2011-09-12T06:14:10.400 に答える
0

まず、ボタンbtn_Saveが内側にないため、ボタンGridViewをクリックしてもボタンは上がりませんgrd_Test_RowCommand。ボタンを内側に移動するか、次のGridViewように手動で上げる必要があります。

asp.netフォーラムからコピー:

Protected Sub Button1_Click(sender As Object, e As EventArgs)
    Dim commandArgs As New CommandEventArgs("Command Name Here", "Your Command Argument Here")
    'You can pass any row
    'You can also skip the row parameter and get the row from Command Argument
    Dim eventArgs As New GridViewCommandEventArgs(GridView1.Rows(0), GridView1, commandArgs)
    GridView1_RowCommand(GridView1, eventArgs)
End Sub

元の質問に関して、これは、DropDownList内部RowCommandイベントの選択された値を取得する方法です。

編集:RowCommandイベントが発生した現在の行を取得するためのコードを修正しました

Protected Sub grd_Test_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grd_Test.RowCommand
    If e.CommandName = "Select" Then
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        Dim row As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).NamingContainer, GridViewRow)
        Dim ddl as DropDownList = CType(row.FindControl("drp_UnAssignProp", DropDownList)
        Dim selectedValue as String = ddl.Text
     End If
End Sub
于 2011-09-12T06:21:47.510 に答える