0

GridView と GridView にいくつかのコントロールを含む Web フォームがあります。グリッドビューの EdtItemTemplate に DropDownList があります。

この DropDownList を、LisItems 型の配列を返す CodeBehind ファイル内のメソッドにバインドする必要があります。

私が直面している問題はこれです。コントロールは EditItemTemplate にあるため、FindControl("MyControlID") を使用してもどの GridView イベントでも機能しないようです。つまり、OnRowUpdating イベントを使用しない限り、null が返されます。つまり、コントロールが見つからないようです。 、しかし、その前にコントロールをデータにバインドする必要があるため、このイベントを使用できません。

とにかく <%# Bind("MyMethodName") %> を使用してコントロールをバインドできますか?

4

3 に答える 3

0

これを試して

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();
    }
}
于 2012-10-25T08:23:43.187 に答える
0

これを試して

このように、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>

そして、オブジェクト データソースを追加して、編集テンプレートのドロップダウンをバインドします

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

これが役立つことを願っています。

于 2012-10-25T08:10:57.420 に答える
0

gridview rowdatabound は、データを gridview のドロップダウンにバインドするために使用されます。

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

于 2012-11-09T12:00:45.393 に答える