Несколько списков DropDown в GridView в C # и Asp.net, таких как город, штат, страна - PullRequest
0 голосов
/ 30 января 2019

Я хочу разработать 3 выпадающих списка города, штата, страны.Когда я выбираю страну, в ней должны отображаться только те штаты, которые в выбранной стране одинаковы для города и штата

КОД ASP.NET:

 <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="manager" OnRowEditing="GridView1_RowEditing">
        <Columns>
            <asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
            <asp:BoundField DataField="Id" HeaderText="Id" InsertVisible="False" ReadOnly="True" SortExpression="Id" />
            <asp:BoundField DataField="username" HeaderText="username" ReadOnly="True" SortExpression="username" />
            <asp:TemplateField HeaderText="ma_city" SortExpression="ma_city">
                <EditItemTemplate>
                    <asp:DropDownList ID="ddl_city" runat="server" AutoPostBack="True" SelectedIndex='<%# Eval("city_id") %>' SelectedValue='<%# Bind("ma_city") %>' DataSourceID="city">
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("ma_city") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="ma_state" SortExpression="ma_state">
                <EditItemTemplate>
                    <asp:DropDownList ID="ddl_state" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList5_SelectedIndexChanged1" SelectedIndex='<%# Bind("state_id") %>' SelectedValue='<%# Bind("ma_state") %>' DataSourceID="state">
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("ma_state") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="ma_country" SortExpression="ma_country">
                <EditItemTemplate>
                    <asp:DropDownList ID="ddl_country" runat="server" AutoPostBack="True" DataSourceID="country" DataTextField="name" DataValueField="Id" OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged" SelectedIndex='<%# Eval("countrt_id") %>' SelectedValue='<%# Bind("ma_country") %>'>
                    </asp:DropDownList>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label3" runat="server" Text='<%# Bind("ma_country") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="ma_pincode" HeaderText="ma_pincode" SortExpression="ma_pincode" />
            <asp:BoundField DataField="Ma_phone_no" HeaderText="Ma_phone_no" SortExpression="Ma_phone_no" />
        </Columns>
    </asp:GridView>

, и я также использую приведенный ниже код в каждом событииlike (Это автоматически генерируется в visualstudio 2017):

DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
GridView1_SelectedIndexChanged(object sender, EventArgs e)

Я использую два типа кода для получения ссылки на gridview по:

 GridView gridView = (GridView)((((Control)sender).Page.Items[GridView1]));
        GridViewRow gridViewRow = gridView.SelectedRow;
        DropDownList dpl5 = (DropDownList)gridViewRow.FindControl("ddl_state");
        DropDownList dpl6 = (DropDownList)gridViewRow.FindControl("ddl_city");

code: -

GridViewRow gridViewRow = GridView1.SelectedRow;
        DropDownList dpl5 = (DropDownList)gridViewRow.FindControl("ddl_state");
        DropDownList dpl6 = (DropDownList)gridViewRow.FindControl("ddl_city");

Это оба дают мне нулевое значение в качестве возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...