Gridview:根据同一行中单元格的值更改链接按钮文本
本文关键字:单元格 文本 按钮 链接 一行 Gridview | 更新日期: 2023-09-27 17:54:27
下面是我想要的gridview , ID, Name和Status是Label, Action是LinkButton
ID ------------- 的名字 ------------- 状态 ------------- 行动
1 -------------- Name1 ------------ 活跃的 ------------ 禁用
2 -------------- Name2 ------------ 在活动 --------- 使
3 -------------- Name3 ------------ 活跃的 ------------ 禁用
如何将LinkButton Text设置为"Disable"或"Enable"取决于Status(始终是Active或In-active)的值(Text)?
我的链接按钮如下所示,如何将文本"你想要继续"更改为"你想要禁用"或"你想要启用"基于上述逻辑
<asp:LinkButton ID="lbtAction" runat="server"
CommandArgument='<%# Eval("ID")%>'
OnClientClick="return confirm('Do you want to proceed?')"
OnClick="DoAction"></asp:LinkButton>
使用RowDataBound
并将逻辑放在那里:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lbtAction = (LinkButton) e.Row.FindControl("lbtAction");
Label lblStatus = (Label) e.Row.FindControl("lblStatus");
bool active = lblStatus.Text == "Active";
lbtAction.Text = active ? "Disable" : "Enable";
string onClientClick = string.Format("return confirm('Do you want to {0}?')",
active ? "Disable" : "Enable");
lbtAction.OnClientClick = onClientClick;
}
}
使用Gridview RowDataBound
事件来实现相同的功能。如下所示(不是确切的代码,但你可以用类似的开头)
void RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
if(((Label)e.Row.FindControl("Status")).Text == "Active")
{
//disable
}
else
{
//enable
}
}
}