GridView Asp .Net-根据同一列中第一个下拉列表的值更改第二个下拉列表的选定值

3

我是ASP.NET和C#的新手。我有一个带下拉列表的网格视图。例如,如果网格视图是这样的:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="`server`">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Designation" HeaderText="Designation" SortExpression="Designation" />
                <asp:TemplateField HeaderText="City">
                    <ItemTemplate>
                        <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource2" DataTextField="City" DataValueField="City">
                        </asp:DropDownList>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:CS %>" SelectCommand="SELECT [City] FROM [EmployeeDetails]"></asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CS %>" SelectCommand="SELECT [ID], [Name], [Designation] FROM [EmployeeDetails]"></asp:SqlDataSource>
    </form>

在“城市”这一列中,如果我在第一个下拉菜单中选择了孟买,我希望该列中其余的下拉菜单自动更改为孟买。如何实现?
1个回答

1
在您的aspx文件中,按照以下方式进行更改:
<asp:DropDownList ID="DropDownList1" runat="server"  DataTextField="City" DataValueField="City" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">

在你的aspx.cs文件中,
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList selectedDropDown = (DropDownList)sender;
        foreach(GridViewRow gRow in GridView1.Rows)
        {
            DropDownList ddlCity = (DropDownList)gRow.FindControl("DropDownList1");
            ddlCity.SelectedValue = selectedDropDown.SelectedValue;
        }
    }

这应该适用于所有下拉框。
如果你只想让它在第一个下拉框中起作用,那么使用以下条件。
if (((GridViewRow)selectedDropDown.Parent.Parent).RowIndex == 0)
        {
            foreach (GridViewRow gRow in GridView1.Rows)
            {
                DropDownList ddlCity = (DropDownList)gRow.FindControl("DropDownList1");
                ddlCity.SelectedValue = selectedDropDown.SelectedValue;
            }
        }

感谢您宝贵的时间,Anoop!! - HARISH SEKAR
很高兴能够帮助! - Anoop H.N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接