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;

        }

 

 

感觉这种判别方法肯定有问题,这样写的好无奈啊~自己都有点看不去!

你可能感兴趣的:(Binder)