为了显示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;
}
感觉这种判别方法肯定有问题,这样写的好无奈啊~自己都有点看不去!