访问javascript和C#本地存储,asp.net

访问javascript和C#本地存储,asp.net

问题描述:

我希望有人会帮助我,我拉出我的头发过去几个小时......!访问javascript和C#本地存储,asp.net

我使用asp.net web表单用C#

我已经在我的菜单下面的按钮,此按钮会打开一个页面,列出经纪人选择属性...

htmlCode.Append("<button type='button' class='btn btn-basic' id='btnEnquire' onclick='openEnquiryPage()'> <span class='glyphicon glyphicon-th-list'></span> View my list </button>"); 

    function openEnquiryPage() { 
    location.href = "EnquiryPage.aspx"; 
    //get the list from the storage into the hidden field 
    //getListOfProperties();//not in use... 
    } 

名单存储在localStorage的为JSON,我可以看到页面

var retrievedData = localStorage.getItem("propertyArray"); 
    proplist2.value = retrievedData; 

宣布在文本框中正确的数据在asp.net控制遵循

<asp:TextBox ID="TextBox1" runat="server" Text="initial"></asp:TextBox> 

但在隐藏字段,该数据始终= “”

<asp:HiddenField ID="txtPropList" runat="server"></asp:HiddenField> 

JavaScript来填充隐藏字段...

function getListOfProperties() { 
    document.getElementById("body_content_txtPropList").value = retrievedData; 
    var proplist2 = document.getElementById("body_content_txtPropertyList"); 
    proplist2.value = retrievedData; 
    } 

当我调试在以下几行后面的代码...

Page.ClientScript.RegisterStartupScript(this.GetType(),"prop", "getListOfProperties();",true); 

    _propertyListJson = txtPropList.Value; 

propertyListJson我总是=“”

感谢您提前。

+0

为什么你不使用的:var myHidden =的document.getElementById( ''); ,而ClientIDMode是静态的。 –

+0

后面的代码运行在服务器端,javascript运行在客户端。如果您希望服务器访问客户端数据,则必须从客户端向服务器发送客户端数据。据服务器知道,它将是一个空字符串,因为它创建了空表单。一个例子是,一位经理给员工一张表格,让他们回到办公桌前填写,员工只是这样做,但保留在办公桌前。经理对表格的最后一次了解是空白数据,他不能奇迹般地知道员工将表格放回表格之前的状态。 –

+0

谢谢您的输入...尝试一些想法,将重新发布。 – user1319463

如果你想使用隐藏字段,那么你应该使用 <%=txtPropList.ClientID%> 当你在页面上呈现,看看它在检查元素服务器将呈现不同的ID,因此它不会存储在隐藏字段中的值只是如此使用ClientID创建静态模式是可行的。但是,当你从C#代码调用JavaScript函数时,它会调用JavaScript函数,但它不会等待它并执行下一行代码,因为那时该值不存储在隐藏字段中,因此它会返回空值。

如果您想要再调用的JavaScript函数在页面加载事件,然后单击该按钮并检索值,将成功地检索的价值,但我不认为这是从我看来是可行的代码

我建议创造条件,只是从localStorage的获取数据并进行操作 和的WebAPI可以从JavaScript使用Ajax调用

我希望这将是有益的,答案是令人满意的☺

容易叫的WebAPI

谢谢

+0

谢谢大家,是的,你无法获得page_load事件的隐藏值。我必须附上一个按钮才能获得价值。它不能在页面加载时直接加载......并且正如Ravi指出的其他方法将是web api。 – user1319463