在不回发的情况下更改隐藏字段的值

时间:2013-05-05 17:17:25

标签: c# javascript asp.net hiddenfield

我有一个链接按钮,单击时调用c#函数'send_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的默认值,而不是在提示框中分配给它的新值。 我假设它是因为页面没有回发, 我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

这很容易通过Jquery实现

<script type="text/javascript" language="javascript">

    $(document).ready(function() {

        $('#MainContent_lnkAddToList').live("click", function() {
            var person = prompt("Additional Comments:", "");
            $('[id*="hidAcrobat"]').val(person);
        });
    });

之后,您可以在任何服务器端事件中使用隐藏字段值。

对于Jquery添加引用

希望它可以帮助你。

答案 1 :(得分:0)

处理客户端链接按钮的onclick事件(使用javascript)并从处理程序调用{​​{1}}方法。

执行客户端事件处理程序后,页面回发并在服务器端发送,您可以像在text_alert()事件处理程序中一样访问隐藏变量。

答案 2 :(得分:0)

您可以轻松使用ModalPopUp创建类似效果的提示,然后轻松抓取服务器端的值。