[英]Asp.net gridview with dropdown: Rowindex is always 0 in SelectedIndexChanged event
[英]ASP.NET Gridview Dropdown Template Field Triggering SelectedIndexChanged on Gridview
我有一个带有ddlAction下拉列表的基本ASP.NET Gridview
<asp:GridView ID="GridView1" CssClass="mgrid2"
runat="server" AutoGenerateColumns="False" ForeColor="White" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="ClientName" HeaderText="ClientName" SortExpression="ClientName" />
<asp:BoundField DataField="ProjectID" HeaderText="ProjectID" SortExpression="ProjectID" />
<asp:BoundField DataField="ProjectName" HeaderText="ProjectName" SortExpression="ProjectName" />
<asp:BoundField DataField="Budget" HeaderText="Budget" ReadOnly="True" SortExpression="Budget" />
<asp:BoundField DataField="PercentComplete" HeaderText="PercentComplete" ReadOnly="True" SortExpression="PercentComplete" />
<asp:BoundField DataField="EarnedMH" HeaderText="EarnedMH" ReadOnly="True" SortExpression="EarnedMH" />
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList ID="ddlAction" CssClass="dropdownlist" runat="server" AutoPostBack="true" OnSelectedIndexChanged=""GridView1_SelectedIndexChanged"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
它填充在rowdatabound上
If e.Row.RowType = DataControlRowType.DataRow Then
Dim ddl = TryCast(e.Row.FindControl("ddlAction"), DropDownList)
If ddl IsNot Nothing Then
ddl.DataSource = New List(Of String)() From {
"Action",
"View",
"Edit",
"Archive"
}
ddl.DataBind()
End IF
我希望dropdownlist触发GridView1 selectedindexchanged事件,以便获得所选行的ProjectID,但我也希望获取dropdownlist ddlAction的选定值。
类似于这个例子谢谢
附答案更新
Protected Sub GridView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
Dim ddl = DirectCast(sender, DropDownList)
Dim row As GridViewRow = CType(ddl.NamingContainer, GridViewRow)
从这两个项目中,您可以访问所需的内容
我有一段时间没有使用vb了,但是您没有在事件方法中访问发件人的权限吗?
var value = (sender as DropDownList).SelectedValue;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.