1

私はboundfieldがこのようなものであるグリッドビューを持っています-

 <asp:BoundField  HeaderText="Approved" />

このグリッドビューのrowcommandイベントで、次のようなコマンド名に従ってテキストを表示したい

protected void gwFacultyStaff_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.Equals("Yes"))     
    {
        string id = e.CommandArgument.ToString();
        GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;
        int index = Convert.ToInt32(row.RowIndex);
        GridViewRow rows = gwFacultyStaff.Rows[index];
        rows.Cells[12].Text = "TRUE";     
    }
    else if (e.CommandName.Equals("No"))
    {
        string id = e.CommandArgument.ToString();
        GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;
        int index = Convert.ToInt32(row.RowIndex);
        GridViewRow rows = gwFacultyStaff.Rows[index];
        rows.Cells[12].Text = "FALSE";
    }
}

しかし、表示したい必要なテキストが表示されません。誰かが私に可能な解決策を提案できますか?

4

1 に答える 1

1

a の代わりに、次のように a をBoundField使用しますTemplateField

<asp:TemplateField HeaderText="Approved">
    <ItemTemplate>
        <asp:Label id="LabelApproved" runat="server"/>
    </ItemTemplate>
</asp:TemplateField>

あなたのRowCommandイベントでは、これを行うことができます:

protected void gwFacultyStaff_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.Equals("Yes"))     
    {
        GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;
        Label theLabel = row.FindControl("LabelApproved") as Label;
        theLabel.Text = "TRUE";
    }
    else if (e.CommandName.Equals("No"))
    {
        GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;
        Label theLabel = row.FindControl("LabelApproved") as Label;
        theLabel.Text = "FALSE";
    }
}
于 2013-09-07T04:40:37.333 に答える