发送 java 脚本变量值作为 PostBackUrl 查询字符串的一部分

Sending java script variable value as part of PostBackUrl query string

我需要将参数值发送到 PostBackUrl 方法的查询字符串中 在 asp 按钮内。

我需要的值已经在如下所示的 java 脚本函数中捕获。

如何将 hiddId 中的值作为 URL 的一部分发送?下面的方法不起作用。有人可以帮忙吗?

   <script language="javascript" type = "text/javascript">
        function btn_Selected() {
           var hiddId = null;
           $('#<%=GridView1.ClientID %>').find('input[type=radio]:checked').each(function () {
               hiddId = $(this).closest('tr').find('input[type = "hidden"]').val();
           });

     }

 <asp:Button ID="Btn_Update" runat="server" Text="Update" PostBackUrl="Screen_Edit.aspx?CustID='<%=hiddId%>'"

而不是 post-back,只需使用 JavaScript 重定向。

function btn_Selected() {
           var hiddId = null;
           $('#<%=GridView1.ClientID %>').find('input[type=radio]:checked').each(function () {
               hiddId = $(this).closest('tr').find('input[type = "hidden"]').val();
           });
           window.location.href = "Screen_Edit.aspx?CustID='" + hiddId + "'"
     }

如果您查看页面的 HTML 源代码,按钮将有一个 javascript onclick 事件,看起来像这样 javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$mainContentPane$Btn_Update&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Screen_Edit.aspx?CustID=&quot;, false, false))

我们所要做的就是想办法在 ?CustID= 之后插入您的变量。

您可以将按钮的 onclick 值替换为 jQuery 的 .attr() 函数,然后进行搜索和替换以插入您的变量。

<script type="text/javascript">
    $(document).ready(function () {
        var hiddId = $(this).closest('tr').find('input[type = "hidden"]').val();
        $("#<%=Btn_Update.ClientID %>").attr("onclick", $("#<%=Btn_Update.ClientID %>").attr("onclick").replace("?CustID=", "?CustID=" + hiddId));
    });
</script>