簡體   English   中英

ASP.NET Gridview下拉模板字段觸發Gridview上的SelectedIndexChanged

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM