【问题标题】:use javascript value and doPostback?使用javascript值和doPostback?
【发布时间】:2011-09-25 06:54:16
【问题描述】:

我有一个页面,点击一个按钮,一个 javascript 函数就会运行。然后它会聚合一些数据并将数据放置在此页面的隐藏字段中。然后它会打开一个新窗口。这个新窗口会像这样获取这些汇总数据:-

$('#accepted').val(window.opener.$('#accepted').val());

接受是父窗口和子窗口中的隐藏字段(未使用 runat="server")。现在的问题是我需要这些数据来绑定两个网格。目前我已经在两个网格上都做了一个 doPostback,但我真正想做的是对表单做一次 doPostback 并处理 PageLoad 事件的数据绑定。所以两个问题:-

1) 我如何回发表单?

2) 我如何做到这一点,同时还能与实际的表单提交区分开来?

【问题讨论】:

    标签: c# asp.net postback


    【解决方案1】:

    要发布表单,您应该能够在设置接受字段后,在您的 javascript 中添加对 __doPostback 的调用。您可以使用 __doPostback 的 EventTarget 和 EventArgument 参数来控制网格中的绑定。

    所以,你可以把它放在你的 js 中:

    __doPostback('rebindGrid', '');
    

    然后在你的页面加载事件中:

    if (Request.Form["__EVENTTARGET"] == "rebindGrid")
    {
        //....Do so stuff
    }
    

    【讨论】:

      【解决方案2】:

      为了更直接地将它与回发模型联系起来,我用一些 C# 包装了我的模型

      C# 扩展方法

      public static string GetPostBackLink (this Control c, string argument = "") {
       return c.Page.ClientScript.GetPostBackEventReference(ctl, argument, true) + ";";
      }
      

      ASPX

      <asp:LinkButton id="lnkDoThis" runat="server" onclick="lnkDoThis_Click" 
            style="display: none;"></asp:LinkButton>
      
      <asp:HiddenField id="hdnParamHolder" runat="server" />
      

      JS

      function DoSomething(param) { 
       $("[id$='hdnDealTemp']").val(param);
       <%= lnkDoThis.GetPostBackLink() %> 
      }
      

      代码隐藏

      protected void lnkDoThis_Click (object sender, EventArgs e) { 
       var myParam = hdnParamHolder.Value;
       // Do server actions here
      }
      

      至于在第二个窗口中打开......我不确定我什么时候想要这发生?如果是在回发之后,您需要在页面重新加载时从 hdnParamHolder 控件中读取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-21
        相关资源
        最近更新 更多