使用if else更改按钮(gridview)中的文本

时间:2016-06-21 01:51:11

标签: c# asp.net gridview

我有一个按钮可以根据页面进行更改。我有3页确认,待决和拒绝。

在确认和拒绝时,按钮内的文本相同但挂起不同。如何更改按钮中的单词。按钮位于网格视图中。

在aspx文件中的代码下面:

<asp:TemplateField>
    <HeaderTemplate>Actions</HeaderTemplate>
    <ItemTemplate>
         <asp:Button ID="lnkbtnInfo" runat="server" CssClass="btn btn-success" Text="" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id") %>' CommandName="Detail" /></td>
    </ItemTemplate>
</asp:TemplateField>

如何在cs文件中使用if else。 对于被拒绝和已确认的页面,该按钮为“查看”,待定页面为“审核”

3 个答案:

答案 0 :(得分:1)

我认为您需要在gridview上使用RowDataBound事件处理程序,并根据按钮CommandArgument状态创建if语句:

protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    for (int i = 0; i < GridView.Rows.Count - 1; i++)
    {
        Button status = (Button)GridView.Rows[i].FindControl("lnkbtnInfo"); // find control from your button ID

        String state = status.CommandArgument.ToString(); // assume the value given by Eval data binding
        if (state.Equals("confirmed") || state.Equals("rejected"))
        {
            status.Text = "view";
        }
        else // if (state.Equals("pending"))
        {
            status.Text = "review";
        }
    }
}

参考:Change button text in asp:gridview based on cell value C#

答案 1 :(得分:0)

您还可以使用Eval和三元组来更改.aspx页面上的按钮文字,

Ternary Operator 语法

(your condition) ? "if true value":" if false value";

这是示例&#34;如果您想检查&#39; Id&#39; 是否为3,那么按钮文字应该是查看其他应该是评论。&#34;

<asp:Button ID="lnkbtnInfo" runat="server" CssClass="btn btn-success" Text='<%# ((int)Eval("Id") == 3) ? "view":"Review" %>' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Id") %>' CommandName="Detail" />

答案 2 :(得分:0)

这里我的答案适用于我的情况:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            Button name = (Button)GridView1.Rows[i].FindControl("lnkbtnInfo"); // find control from your button ID
            Label status= (Label)GridView1.Rows[i].FindControl ("lblStatus");
            if (status.Text == "Complete" || status.Text == "Rejected" || status.Text == "Cancelled" || 
                status.Text == "Returned" || status.Text == "UserRejected")//refer to confirm and reject order
            {
                name.Text = "View";
            }

            else // refer to pending order
            {
                name.Text = "review";
            }

        }
    }