DataBinder绑绑绑,三元表达式判判判~
为了显示checkbox 的可见性,用的是在前台绑定数据的方法:
Enabled='<%#(((DataBinder.Eval(Container,"DataItem.apply_status").ToString()=="Sumbit"?true:false || DataBinder.Eval(Container,"DataItem.apply_status").ToString()=="Approved"?true:false) && GetConditon()=="ApprovedSubmit"?true:false)||(DataBinder.Eval(Container,"DataItem.apply_status").ToString()=="Approved"?true:false && GetConditon()=="Approved"?true:false)||(DataBinder.Eval(Container,"DataItem.apply_status").ToString()=="Submit"?true:false && GetConditon()=="Submit"?true:false))&& DataBinder.Eval(Container, "DataItem.is_open").ToString()=="0"?true:false %> '
定义了一个有返回值的方法:
/// <summary> /// 根据不同的身份和状态设置Checkbox的Enable属性 /// </summary> public string GetCondition() { string statue = ""; int LoginUserID = Int32.Parse(Session["LoginUserID"].ToString()); if (rightManagementEntityMethod.IsVssAdmin(LoginUserID) && rightManagementEntityMethod.Isleader(LoginUserID)) { statue = "ApprovedSubmit"; } else if (rightManagementEntityMethod.IsVssAdmin(LoginUserID)) { statue = "Approved"; } else if (rightManagementEntityMethod.Isleader(LoginUserID)) { statue = "Submit"; } return statue; }
感觉这种判别方法肯定有问题,这样写的好无奈啊~自己都有点看不去!