0

我正在使用 ASP.NET 和 C# 来设计 gridview。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字段最初应该设置为下拉菜单的默认值。

请在这方面帮助我。

谢谢

4

1 回答 1

0

您可以使用 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;

            }


        }
    }
于 2013-11-08T09:40:23.813 回答