绑定查询字符串结果到服务器标签并设置按钮的可见属性

时间:2014-01-15 09:07:56

标签: c# asp.net

我想使用服务器标签<%#%>从设计端设置按钮控件的可见属性。我可以通过检查查询字符串模式值来完成页面加载方法中的代码,如下所示:

if (!IsPostBack)
                {
                    ---

                    if (Request.QueryString["mode"] != null && Request.QueryString["mode"] == "1")
                    {
                        btndelete.Visible = false;
                        ----
                    }
                    else if (Request.QueryString["mode"] != null && Request.QueryString["mode"] == "2")
                    {
                        btndelete.Visible = true;
                        ----    
                    }
                }

现在不是从代码后面编写代码,而是想从服务器标签检查查询字符串模式值,返回的结果将设置为按钮的Visible属性。

我试过这种方式,但没有运气!

<asp:Button ID="btndelete" CausesValidation="false" Text="<%$Resources:General,Delete%>" OnClick="btndelete_Click"
                                runat="server" CssClass="btnstyle" OnClientClick="showConfirm(this,'mdlAttendanceReportCriteriaDelete'); return false;" 
                                Visible='<%#if(Request.QueryString["mode"].ToString() == "1"){Convert.ToBoolean("false")}else{Convert.ToBoolean("true")} %>'/>



 <asp:Button ID="btndelete" CausesValidation="false" Text="<%$Resources:General,Delete%>" OnClick="btndelete_Click"
                                runat="server" CssClass="btnstyle" OnClientClick="showConfirm(this,'mdlAttendanceReportCriteriaDelete'); return false;" 
                                Visible='<%#(Request.QueryString["mode"].ToString() == "1")?Convert.ToBoolean("false"):Convert.ToBoolean("true") %>'/>


<asp:Button ID="btndelete" CausesValidation="false" Text="<%$Resources:General,Delete%>" OnClick="btndelete_Click"
                                runat="server" CssClass="btnstyle" OnClientClick="showConfirm(this,'mdlAttendanceReportCriteriaDelete'); return false;" 
                                Visible='<%#!(Request.QueryString["mode"].ToString() == "1") %>'/>

它运行时没有任何解析器错误,但根本没有任何影响。谁能告诉我如何实现这个功能?提前谢谢。

3 个答案:

答案 0 :(得分:1)

DataBind()中调用Page_Load方法:

protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}

然后使用此语法在aspx代码中设置Visible属性:

Visible='<%# Request.QueryString["mode"] == "2" %>'

答案 1 :(得分:0)

使用

怎么样?
Visible='<% Request.QueryString.Get("mode") == "1"? "true": "false"%>'

Visible='<% if (Request.QueryString.Get("mode") == "1" ) "true" else "false" %>'

答案 2 :(得分:0)

Visible='<%# Request.QueryString.Get("mode").Equals("1") ? Convert.ToBoolean("False") : Convert.ToBoolean("True") %>'