我有一个按钮可以根据页面进行更改。我有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。 对于被拒绝和已确认的页面,该按钮为“查看”,待定页面为“审核”
答案 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页面上的按钮文字,
(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";
}
}
}