【问题标题】:Dropdownlist in edit mode of a gridview网格视图编辑模式下的下拉列表
【发布时间】:2015-07-14 08:36:06
【问题描述】:

在我的 C# 应用程序中,当我在 gridview 中编辑一行时,我从下拉列表中选择了一些新数据。

我正在像这样填充下拉列表:

<asp:TemplateField HeaderText="Gender">
    <ItemTemplate>
        <asp:Label ID="gender" runat="server" Text='<%# Eval("gender").ToString() %>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:DropDownList ID="DDL_genderList" runat="server">
            <asp:ListItem Value="" Text="---"></asp:ListItem>
            <asp:ListItem Value="M" Text="M"> </asp:ListItem>
            <asp:ListItem Value="F" Text="F"> </asp:ListItem>
        </asp:DropDownList>
    </EditItemTemplate>
</asp:TemplateField>

但是当我按下模板中的“编辑”按钮并进入“RowUpdating”事件时,下拉列表中的选定值每次都是该下拉列表中的第一个值。

我需要在下拉列表中选择值,它是标签性别中显示的值。

有人有什么想法吗?

我尝试了很多方法来设置“RowDataBound”事件中的选定值,但都没有成功。

我试过这个:

protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e)
{
    DataRowView dRowView = (DataRowView)e.Row.DataItem;

    if ((e.Row.RowState & DataControlRowState.Edit) > 0)
    {
        DropDownList genderList = (DropDownList)e.Row.FindControl("DDL_genderList");
        genderList.SelectedValue = dRowView[1].ToString();
    }
}

【问题讨论】:

  • 使用
  • 谢谢,但结束的问题?

标签: c# asp.net gridview


【解决方案1】:

您必须从 TemplateField (DataRow) 中找到 Label,从 EditTemplate (EditRowState) 中找到 DropDownList,如下所示:

protected void gvProducts_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // find gender from label which is inside ItemTemplate
        string lblgender = ((Label)e.Row.FindControl("gender")).Text;

        if ((e.Row.RowState & DataControlRowState.Edit) > 0)
        {
            // find gender list from dropdownlist which is inside EditTemplate
            DropDownList genderList = (DropDownList)e.Row.FindControl("DDL_genderList");
            genderList.SelectedIndex = 
                genderList.Items.IndexOf(genderList.Items.FindByValue(lblgender));
        }
    }
}

我知道这是很晚的答案,但它可以帮助 OP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多