C# 更改隐藏字段的值而无需回发

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);

我有一个链接按钮,当点击时,它会调用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);
    }
如您所见,它调用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事件?