gpt4 book ai didi

c# - 了解隐藏字段

转载 作者:行者123 更新时间:2023-12-02 19:11:48 25 4
gpt4 key购买 nike

我想知道你们是否可以帮助我理解隐藏字段,因为我认为我无法让它们发挥作用。

在 aspx 页面上我有:

<asp:HiddenField ID="hidVal" value="" runat="server" />

单击按钮时,我有一个名为的 JavaScript 函数

<button type="button" id="search" onclientclick="search_click()">Search</button> 

函数为

function search_click() {
document.getElementById('hidVal').Value = "1";

<% save(); %>
}

在 aspx.cs 中,我有一个函数可以执行此操作:

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\fgreene\Desktop\savedAdresses.txt", true))
{
file.WriteLine(hidVal.Value);
}

单击按钮后,我查看文件,发现没有任何变化。
我的方法正确还是我不理解它是如何工作的?

最佳答案

推杆<% save(); %>在 aspx 页面中的 JavaScript 函数中会导致 save 在服务器上构建页面时运行,而不是在客户端调用周围的 JavaScript 函数时运行。此时,隐藏字段为空,因此您的文件会写入一个空行。当用户单击该按钮时,隐藏字段将被填充,但没有任何信息可以告诉服务器这已经发生。

您需要做的是:

// In your aspx, for the javascript function: remove the call to save,
// use the correct ID for the hidden field
function search_click() {
document.getElementById('<%= hidVal.ClientID %>').Value = "1";
}

// In your aspx in place of the button put
<asp:Button id="search" runat="server"
onclientclick="search_click(); return true;" onclick="search_click">
Search
</asp:Button>
// This results in a button that calls the javascript function on click, and
// then posts back to the server saying that the button has been clicked

// In your C#, this function gets called when the client posts back to
// say that the button has been clicked.
public protected void search_click(object sender, EventArgs e)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(
@"C:\Users\fgreene\Desktop\savedAdresses.txt", true))
{
file.WriteLine(hidVal.Value);
}
}

关于c# - 了解隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com