【问题标题】:Setting the Default Value of a databound DropDown in Gridview using data fetched from a different table使用从不同表中获取的数据在 Gridview 中设置数据绑定 DropDown 的默认值
【发布时间】:2013-11-06 22:29:48
【问题描述】:

我正在使用 ASP.NET 和 C# 来设计一个网格视图。 gridview 有两个绑定字段(NAME 和 CODE)和一个模板下拉列表(PAY)字段。

Gridview 使用返回 NAME、CODE 和 PAY 的数据库 DB1 填充。我能够按预期获取这些值并填充 gridview 的 NAME 和 CODE 字段。

                 <asp:BoundField DataField="NAME" HeaderText="NAME" 
                SortExpression="NAME" />
            <asp:BoundField DataField="CODE" HeaderText="CODE" SortExpression="CODE" />
            <asp:TemplateField HeaderText="PAY" SortExpression="PAY"> 
                <ItemTemplate> 
                    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="CODE" DataValueField="CODE" 
                    OnSelectedIndexChanged="DropDownList_SelectedIndexChanged" AutoPostBack="True" AppendDataBoundItems="true">
                        <asp:ListItem Text="Choose New Value"></asp:ListItem>   
                    </asp:DropDownList> 
                </ItemTemplate> 
            </asp:TemplateField> 

模板 Dropdownlist 的可能值列表是使用从不同 DataSource DB2 获取的数据绑定的。我能够获取这些值并成功填充下拉列表。

我的要求是gridview的数据库DB1查询返回的PAY字段最初应该设置为下拉菜单的默认值。

请在这方面帮助我。

谢谢

【问题讨论】:

  • 你不能做这样的事吗 DropDownLIst1.selectedText="Something"

标签: c# asp.net sql gridview aspxgridview


【解决方案1】:

你可以使用 GridView1_RowDataBound 事件来处理这个

    void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");

            if (ddl != null)
            {

                ListItem li = ddl.Items.FindByText(DataBinder.Eval(e.Row.DataItem, "CODE").ToString());

                if (li != null)
                    li.Selected = true;

            }


        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2017-01-07
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多