简体   繁体   English

子Gridview中不存在Dropdownlist控件的OnSelectedIndexChanged事件

[英]Doesnot firing OnSelectedIndexChanged event for Dropdownlist control existed in Child Gridview

I have parent gridview and child gridview, In child gridview I have one dropdown list, I need to fire the onselectedindexchanged event for that drop down but it is not firring because it is existed in the child gridview. 我有父GridView和子GridView,在子GridView中有一个下拉列表,我需要为该下拉菜单触发onselectedindexchanged事件,但由于在子Gridview中存在该事件,因此它不会触发。 If I place that dropdown in parent gridview then that selectedindexchanged is firing but I want to place that dropdown in child gridview and need to fire onselectedindexchanged event when user change the dropdown list value . 如果我将该下拉列表放置在父gridview中,则该selectedindexchanged会触发,但是我想将该下拉列表放置在子gridview中,并且需要在用户更改下拉列表值时触发onselectedindexchanged事件。 In the below gridview image you can see the Status column in child gridview. 在下面的gridview图像中,您可以在子gridview中看到“状态”列。 It contains dropdown now I want to fire that dropdown seleted index changed event in code behind. 现在它包含下拉列表,我想在后面的代码中触发该下拉列表的已删除索引更改事件。

在此处输入图片说明

<asp:GridView ID="gvCountry" runat="server" AutoGenerateColumns="false">
 <Columns>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <img alt="" id="imgsymbol" style="cursor: pointer" src="images/plus.png" />
                                    <asp:Panel ID="pnlOrders" runat="server" Style="display: none">
                                        <asp:GridView ID="gvBrokerdetails" runat="server" AutoGenerateColumns="false" CssClass="mGrid" OnRowCommand="gvBrokerdetails_RowCommand"
                                            AlternatingRowStyle-CssClass="alt" PagerStyle-CssClass="pgr" GridLines="None" AllowPaging="true">
                                            <Columns>
                                                <asp:BoundField DataField="BrokerName" HeaderText="Name" />
                                                <asp:TemplateField HeaderText="Status">
                                                    <ItemTemplate>
                                                        <asp:DropDownList ID="ddlStatus" runat="server" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged" AutoPostBack="true">
                                                            <asp:ListItem Text="Include" Value="0"></asp:ListItem>
                                                            <asp:ListItem Text="Exclude" Value="1"></asp:ListItem>
                                                        </asp:DropDownList>
                                                    </ItemTemplate>
                                                </asp:TemplateField>
                                                <asp:TemplateField HeaderText="Delete">
                                                    <ItemTemplate>
                                                        <asp:ImageButton ID="imgBtnDeleteRow" runat="server" Width="25px" Height="25px" CommandName="CrossImageButton" CommandArgument='<%#Eval("BrokerId")%>' ImageUrl="~/images/cross-button.png" />
                                                    </ItemTemplate>
                                                </asp:TemplateField>
                                            </Columns>
                                        </asp:GridView>
                                    </asp:Panel>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="CountryName" HeaderText="Country Name" />
                        </Columns>
                    </asp:GridView>

CodeBehind: 代码背后:

public void ddlStatus_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

But the above is event is not calling. 但以上是事件未调用。 Is there any other process to achieve or I need to specify any new property in the code. 是否有其他任何过程要实现,或者我需要在代码中指定任何新属性。

Find your gridview inside the RowDataBound Event of parent gridview 在父gridview的RowDataBound事件中找到您的gridview

protected void gvCountry_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        GridView mygrid = e.Row.FindControl("gvBrokerdetails") as GridView;
    }
}

than handle the event of mygrid it is your child grid you can handle any event you want or assign any property to it. 而不是处理mygrid事件,它是您的子网格,您可以处理所需的任何事件或为其分配任何属性。 an example of Selected_IndexChanged is below 下面是Selected_IndexChanged的示例

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        GridView mygrid = e.Row.FindControl("gvBrokerdetails") as GridView;
        mygrid.SelectedIndexChanged += new EventHandler(mygrid_SelectedIndexChanged);
    }
}

void mygrid_SelectedIndexChanged(object sender, EventArgs e)
{
     // Write your code here
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM