-1

のイベントで存在gridviewするラベル テキストを設定しようとしています。同じコードは次のとおりです。RowDataBoundgridview

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int day = Convert.ToInt32(DropDownList3.SelectedValue);
        int days = System.DateTime.DaysInMonth(2013,day);
        Label lab = (Label)e.Row.FindControl("d");
        lab.Text = days.ToString();
    }
}

グリッドビュー構造:

<asp:GridView ID="GridView2" runat="server" OnRowDataBound="GridView2_RowDataBound" />
                <asp:BoundField DataField="name" HeaderText="Name" SortExpression="n" />
                <asp:BoundField DataField="dept" HeaderText="Department" SortExpression="d" />
                <asp:BoundField DataField="code" HeaderText="Employee Code" SortExpression="c" />
                <asp:TemplateField HeaderText="Total days" >
                <itemtemplate>
                    <asp:Label ID="d" runat="server" Text="" />
                </itemtemplate>
                </asp:TemplateField>
                </asp:GridView>

上記のコードでは、「d」はグリッドビューのラベルの ID です。強調表示された行でOBJECT REFERENCE NOT SET TO INSTANCE OF AN OBJECT.、私が理解している限り、新しいラベルが作成されていないというエラーが発生しています。次に、このイベントで計算された値を割り当てる方法gridviewのラベルに?

4

1 に答える 1

1
 <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView2_RowDataBound">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="n" />
            <asp:BoundField DataField="ID" HeaderText="Department" />
            <asp:BoundField DataField="Seats" HeaderText="Employee Code" />
            <asp:TemplateField HeaderText="Total days">
                <ItemTemplate>
                    <asp:Label ID="d" runat="server" Text=""></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

列タグはどこにありますか、列タグを入れて試してください

于 2013-03-06T07:11:52.293 に答える