C# 更改隐藏字段的值而无需回发
我有一个链接按钮,当点击时,它会调用c#函数“send#u Click”。以下是函数:C# 更改隐藏字段的值而无需回发,c#,javascript,asp.net,hiddenfield,C#,Javascript,Asp.net,Hiddenfield,我有一个链接按钮,当点击时,它会调用c#函数“send#u Click”。以下是函数: void send_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "text_alert()", true); Response.Write(hidAcrobat.Value);
void send_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "text_alert()", true);
Response.Write(hidAcrobat.Value);
}
如您所见,它调用javascript函数“text_alert()”,如下所示:
function text_alert() {
var person = prompt("Additional Comments:", "");
if (person != null && person != "") {
document.getElementById('hidAcrobat').value = person;
}
}
弹出一个提示框,接受用户输入,并将隐藏字段“hidAcrobat”的值设置为该值
然后回到c#,下一行是Response.write(hidAcrobat.Value);
它在提示框中写入hidAcrobat的默认值,而不是分配给它的新值。
我想这是因为页面没有回发,
如何解决这个问题?处理客户端链接按钮的onclick事件(使用javascript)并从处理程序调用
text\u alert()
方法
在执行客户端事件处理程序之后,页面发回,在服务器端,您可以访问隐藏变量,就像您在
send\u Click
事件处理程序中所做的那样。您可以轻松地使用创建类似提示的效果,然后轻松地在服务器端获取值。这很容易通过Jquery实现
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#MainContent_lnkAddToList').live("click", function() {
var person = prompt("Additional Comments:", "");
$('[id*="hidAcrobat"]').val(person);
});
});
$(文档).ready(函数(){
$(“#MainContent_lnkAddToList”).live(“单击”,函数(){
var person=prompt(“附加注释:”,“”);
$('[id*=“hidAcrobat”]').val(个人);
});
});
之后,您可以在任何服务器端事件中使用隐藏字段值
对于Jquery,添加引用
希望它能帮助您。您必须了解客户端和服务器端之间的区别。您正在更改的值位于客户端。因此,服务器端脚本中存在的变量的值不会更改,除非您使用回发或使用Ajax进行更改。如何使用回发进行更改?谢谢,请给出你正在使用的实际案例。我不明白你为什么要做response.write(),当你在客户端已经有了变量的值时,我使用respone.write只是想看看服务器端的值是多少。我正在尝试更新一个名为“meeting”的表项,其中已经包含customerid、customercomments和professionalid。我向专业人士显示了一个提示框,以获取他的评论,这样我就可以更新表。如果按钮是在c#中动态创建的,那么如何在客户端处理onclick事件?