0

SQL データベースからフィードされたグリッドビューを使用しています。別のデータソースからフィードされたチェックボックス リストで構成されるカスタム itemTemplate を追加する必要があります。これが私のxml部分です:

        <asp:TemplateField HeaderText="Equipements" >
            <EditItemTemplate>
                <asp:CheckBoxList ID="myCB" runat="server">
                </asp:CheckBoxList>
            </EditItemTemplate>
        </asp:TemplateField>

私は gridview onEditing イベントを使用して、コード ビハインドで「myCB」にアクセスしようとしています。

    protected void OnEditing(object sender, EventArgs e)
    {
        GridView gridview = sender as GridView;
        GridViewEditEventArgs  editEvent = e as GridViewEditEventArgs;
        ListViewItemEventArgs rowEvent = e as ListViewItemEventArgs;
        TableCell equipementsCell = gridview.Rows[editEvent.NewEditIndex].Cells[11];

        CheckBoxList equipements = gridview.Rows.FindControl("myCB") as CheckBoxList;
    }

このコードは機能しません。チェックボックス リストが見つかりません。色々試して失敗…

4

1 に答える 1

0

GridViewのRowDataBoundイベントを使用する必要があります。

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType  == DataControlRowType.DataRow
    &&  e.Row.RowState == DataControlRowState.Edit)
    {
        CheckBoxList equipements = (CheckBoxList )e.Row.FindControl("myCB"); 
        equipements.DataSource = getSomeData();
        equipements.DataTextField = "TextColumn"; 
        equipements.DataTextField = "IdColumn";
        equipements.DataBind();
    }
}
于 2012-10-17T09:06:55.740 に答える