【问题标题】:Pass Javascript Variable into ASP.NET CommandArgument将 Javascript 变量传递到 ASP.NET CommandArgument
【发布时间】:2019-01-28 22:02:56
【问题描述】:

看起来这是不可能的,但是有没有办法将 javascript 变量传递到 CommandArgument 字段?我正在尝试传递 facility_id 变量,以便后面的代码可以访问该值。

这是我的 aspx 代码:

<script type="text/javascript">
    var facility_id = 50;
</script>
<asp:Button CssClass="btn btn-primary btn-lg" ID="submitBtn" runat="server" Text="Create EDD" CommandArgument='<% facility_id.Value %>' OnClick="submitBtn_Click" />

【问题讨论】:

    标签: javascript asp.net commandargument


    【解决方案1】:

    如您所料,CommandArgumentButton 服务器控件的服务器端属性,您不能从客户端代码分配它,因为它不呈现相应的 HTML 属性。但是,您可以使用__doPostBack() 函数从客户端设置回发,如下所示:

    <script>
        var facility_id = 50;
    
        $('#something').click(function () {
            __doPostBack("<%= submitBtn.UniqueID %>", facility_id);
        });
    </script>
    

    背后的代码

    protected void submitBtn_Click(object sender, EventArgs e)
    {
        // assumed 'facility_id' is an int? or Nullable<int> property,
        // make sure the event argument is parseable to integer value
        var evArg = int.Parse(Request.Form["__EVENTARGUMENT"]);
        facility_id = evArg;
    }
    

    如果由于页面上未定义__doPostBack()函数而无法使用,则可以处理该页面的PreRender事件并提供GetPostBackEventReference()方法:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        ClientScript.GetPostBackEventReference(submitBtn, string.Empty);
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-02
      • 2011-11-14
      • 2017-06-03
      • 2013-07-17
      • 2016-09-12
      • 2016-03-29
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多