GridView:如何根据某一行中数据状态显示这一行中按钮的隐藏和显示

页面加载时判断状态的代码for(inti=0;i<this.gvHoliday.Rows.Count;i++)//遍历gridview{intstatusId=0;Use... 页面加载时判断状态的代码
for (int i = 0; i < this.gvHoliday.Rows.Count; i++)//遍历gridview
{
int statusId = 0;
Users us = Session["currentUser"] as Users;
List<FlowHoliday> list = fhm.GetList(us.UserId);//读取数据到list中
for (int j = 0; j < list.Count; j++)
{
statusId = list[j].HolidayStatus;//遍历除单据状态的
}
switch (statusId)
{
case 1://状态:未审核
((Button)this.gvHoliday.Rows[i].Cells[7].FindControl("Button1")).Enabled = false;
//按钮隐藏
break;
case 2://状态:审批中
break;
case 3://状态:已审批
break;
case 4://状态:同意,转交下一步
break;
case 5://状态:退审
break;
}
实现效果是:根据单据状态,如果是未审批,开始流程按钮和删除按钮显示,指定审批人隐藏。如果是同意,转交下一步,指定审批人按钮显示,开始流程按钮和删除按钮隐藏。如果是已审核,那三个按钮都是隐藏的
目前我是用for循环取出单据状态的值,然后用if匹配,相等就把按钮隐藏,但是所有的按钮都隐藏,所以想求下大神给点思路,如果达到我想要效果
展开
 我来答
Cz丶168
推荐于2016-02-19 · TA获得超过994个赞
知道小有建树答主
回答量:1252
采纳率:75%
帮助的人:434万
展开全部
把 switch (statusId)
{
...
}

放在
for (int j = 0; j < list.Count; j++)
{
statusId = list[j].HolidayStatus;//遍历除单据状态的
switch (statusId)
{
...
}
}
里面

如果不放里面 你最后一个状态是 已审核 就出现你图上的结果
如果是未审核 就全部变成了 开始流程按钮和删除按钮显示,指定审批人隐藏

因为你的 statusId 的状态不是当前的 是遍历后的最后一个
更多追问追答
追问
本来我是吧swith放到for里面的,但是还是同样的问题,所以我才把switch拿出来的,还是出现这个问题
追答
那你输出 看一下 statusId 的值!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式