我有一个 Javascript 函数,它在 form1 的 localstorage 中存储一个 Idnumber,并在加载时将 localstorage 数据检索到 form2 上的文本框中。一切正常,但在 form2 上,我还有一个代码隐藏,它必须使用文本框 OnPageload 事件中的 ID 号从 SQL 数据库中选择数据,但它不起作用。所以我意识到当 from2 被加载时,代码隐藏(onpageload)事件在 Javascript 之前首先被触发,该 Javascript 假设将 Idnumber 放入文本框中。请我被卡住了,我不知道该怎么做,任何帮助将不胜感激。问题是我需要在服务器端代码被触发之前触发 java 脚本以将 Idnumber 加载到文本框中这是我在 form1 上的 javascript $(document).on("click", ".Laundry-Cont", function () { var classval = $(this).children("input").val(); // var getInput = prompt("Hey type something here: "); sessionStorage.setItem("storageName", classval); $(document.getElementById('<%=mnn.ClientID%>')).val(sessionStorage.getItem("storageName")); // window.onload = alert(localStorage.getItem("storageName")); //$('#mn').val(localStorage.getItem("storageName")); window.location.href = '/proudctselection.aspx' }); //this is my script on form2 $(document.getElementById('<%=txtpicproductid.ClientID%>')).val(sessionStorage.getItem("storageName")); }); //this is my SQL query on form2 in codebehind Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If cn.State = ConnectionState.Open Then cn.Close() End If Dim selproduct As New SqlCommand("SELECT *FROM allproducts WHERE ItID = @productid") selproduct.Connection = cn selproduct.Parameters.AddWithValue("@productid", SqlDbType.BigInt).Value = iidd Dim selproductda As New SqlDataAdapter(selproduct) Dim selproductdt As New DataTable selproductda.Fill(selproductdt) For Each rw As DataRow In selproductdt.Rows Me.productmainimage.ImageUrl = rw.Item(6).ToString Next cn.Close() End Sub
1 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
这不起作用,因为页面必须在显示 JavaScript 之前完全加载,因此您无法在页面加载事件之前运行 JavaScript。
您可以通过几种不同的方式将 ID 传递给表单 2:
通过加载页面上的 Request.Form 发布值并检索
使用表单 1 完成后通过 QueryString 传递 .. 只需使用 Querystring 值直接转到下一个表单
将 ID 加载到 cookie 并通过 Request.Cookies 拉取
根据数据要求和显示使用 AJAX / WebAPI / WebMethod 和 JavaScript 在页面加载后加载必要的数据。
使用会话状态
在源页面中创建公共属性并访问目标页面中的属性值
从源页面中的控件获取目标页面中的控件信息
可能还想查看更多提示和想法: 从另一个页面获取价值
添加回答
举报
0/150
提交
取消