我有一个gridview,其中包含'ticket'行。用户可以“声明”一张票,这一切都已设置好并且有效。我需要的是能够更改/隐藏“声明”按钮并用“释放”或“打开”命令按钮替换它。我可以在rowdatabound级别实现这一目标吗?我不想要的是每次查询数据库以查看故障单是否已被声明。
答案 0 :(得分:1)
您可以从其单元格中转换按钮,然后根据需要更改其CommandName和CommandArgs及其文本;例如,出于多种目的使用相同的实际按钮。
我觉得有一些状态字段决定你可以用记录做什么?因此,在RowDataBound上通过datakey获取它,并调整按钮以适应。
然后单击它,检查命令名称并执行相关的功能/代码块?
编辑 - 像这样:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
Button btn = e.Row.Cells[YourButtonsColumIndex].FindControl("btnYourButtonsID") as Button;
btn.CommandName = "Release";
//Or
((Button)e.Row.Cells[YourButtonsColumIndex].FindControl("btnYourButtonsID")).CommandName = "Release";
}
请记住,隐藏的行仍在零索引列列表中计算。