【问题标题】:Bind Data to DropDownList in GridView asp.net在 GridView asp.net 中将数据绑定到 DropDownList
【发布时间】:2012-10-25 07:44:50
【问题描述】:

我有一个带有 GridView 和 GridView 中的一些控件的 Web 表单。我在 gridview 的 EdtItemTemplate 中有一个 DropDownList。

我需要将此 DropDownList 与我的 CodeBehind 文件中的某个方法绑定,该方法返回一个 LisItems 类型的数组。

我面临的问题是这样的。由于控件位于 EditItemTemplate 中,使用 FindControl("MyControlID") 似乎在任何 GridView 事件中都不起作用,它返回 null,换句话说,它似乎无法找到控件,除非我使用 OnRowUpdating 事件,但我不能使用这个事件,因为在此之前需要绑定数据。

有没有我可以使用 来绑定控件?

【问题讨论】:

  • 你尝试过itemdatabound事件吗?
  • 嗨,我没有。很快就会试一试
  • 我似乎无法在 GridView 中找到此事件
  • 其实只是databound或者rowdatabound。

标签: asp.net


【解决方案1】:

试试这个

在 App_Code 中创建一个数据类,像这样

public static class Fruits
{
    public static List<string> GetFruits()
    {
        return new string[] { "Apple", "Mango", "Banana", "Grapes" }.ToList();
    }
}

给你的页面添加一个网格,我猜你们都准备好了

<asp:GridView runat="server" ID="grid" AutoGenerateColumns="false" OnRowEditing="grid_RowEditing">
        <Columns>
            <asp:TemplateField HeaderText="Selected Fruit">
                <ItemTemplate>
                    <asp:Label runat="server" ID="Fruit" Text='<%# Eval("Fruits") %>' />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:DropDownList runat="server" ID="fruits" DataSourceID="fruitsDS" />
                </EditItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Edit">
                <ItemTemplate>
                    <asp:Button runat="server" ID="btnEdit" Text="Edit" CommandName="Edit" />
            </ItemTemplate>
      </asp:TemplateField>
    </Columns>
</asp:GridView>

并添加一个对象数据源来绑定编辑模板的 DropDowns

<asp:ObjectDataSource ID="fruitsDS" runat="server" SelectMethod="GetFruits" TypeName="Fruits" />

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    试试这个

    protected void RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowState == DataControlRowState.Edit)
        {
            DropDownList dl = (DropDownList)e.Row.FindControl("myList");
            dl.DataSource = new string[] { "A", "B" };
            dl.DataBind();
        }
    }
    

    【讨论】:

      【解决方案3】:

      gridview rowdatabound 将使用到bind the data to dropdown in gridview.

      DropDownList ddl = (DropDownList)e.Row.FindControl("ddlcity"); ddl.DataSource = s;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-05
        • 1970-01-01
        • 2011-04-16
        • 2011-11-04
        相关资源
        最近更新 更多