无法在gridview中设置两个下拉列表的selectedindexchange

时间:2014-01-02 04:54:57

标签: c# gridview drop-down-menu selectedvalue rowdatabound

我在gridview的模板字段中有三个下拉列表。如果第一个下拉列表中选择了值,那么我将使用listitem数组填充另外两个下拉列表。下拉列表中都包含相同的项目。

假设我有一个名为ddlone,ddltwo,ddlthree的下拉列表。如果ddlone有一个selectedvalue,那么根据ddlone的selectedvalue我在ddltwo和dllthree中添加项目。他们都有相同的项目清单。问题是当我设置ddltwo或ddlthree的selectedindex或selectedvalue时,两者都得到相同的索引或值,我不知道如何。

这是我的gridview:

<asp:GridView ID="GridView1" runat="server" 
AutoGenerateColumns="false" OnRowDataBound="gridview_RowDataBound">
<HeaderStyle HorizontalAlign="Left" />
<Columns>
    <asp:BoundField HeaderText="SrNo" DataField="SrNo" />
    <asp:TemplateField HeaderText="ONE">
        <ItemTemplate>
            <asp:DropDownList ID="ddlone" runat="server" AutoPostBack="True"
            OnSelectedIndexChanged="ddlone_SelectedIndexChanged">
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Two">
        <ItemTemplate>
            <asp:DropDownList ID="ddltwo" runat="server">
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Three">
        <ItemTemplate>
            <asp:DropDownList ID="ddlthree" runat="server">
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Add">
        <ItemTemplate>
            <asp:LinkButton ID="lnkAddon" runat="server" Text="+" 
              Font-Underline="false">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

这一切都在gridview_rowdatabound事件中完成,这里是我的代码:

ddlone.SelectedValue = value_one;
items = GetItems(value_one);
ddltwo.Items.Clear(); ddlthree.Items.Clear();
foreach (ListItem it in items)
{
    ddlopen.Items.Add(it); ddlclose.Items.Add(it);
}
if (!string.IsNullOrEmpty(value_two)) ddltwo.SelectedValue = value_two;
if (!string.IsNullOrEmpty(value_three)) ddlthree.SelectedValue = value_three;

当执行第二个最后一个语句时,ddltwo和ddlthree的值变为相同。执行最后一个语句时,ddltwo和ddlthree的selecetedvalue变为相同。

我尝试制作一个项目的副本,但问题仍然存在。

0 个答案:

没有答案