【问题标题】:Set value of Viewstate from Javascript从 Javascript 设置 Viewstate 的值
【发布时间】:2014-06-14 02:08:50
【问题描述】:

我正在开发 asp.net 应用程序。对于一个页面,我必须清除控件的值(如文本框和下拉列表等),我还必须删除 ViewState 的值。最初我是从代码隐藏中做的,所以问题就在那里。但是现在问题出现了,当我尝试使用客户端重置控件的值时,比如说

document.getElementById('<%= txtTextBox.ClientID %>').value ='';

但我面临的问题是我无法从客户端设置视图状态值。 我必须明确视图状态,一个是简单的变量,比如 ViewState["NameOfUser"],另一个是将数据表转换为视图状态,

ViewState["dataTable"] = dt;

感谢和问候

【问题讨论】:

  • 那么这里的问题是什么?
  • 如果你改变元素,微软包含的javacode将改变提交时的视图状态。
  • @Rahul 从标题上看不清楚吗??
  • 你不应该修改视图状态,因为这会在回发时给你一个错误......

标签: c# javascript asp.net


【解决方案1】:

你根本无法在客户端赋值。

  1. 要么在提交表单时通过隐藏字段传递它,要么
  2. 从 javascript 调用 ajax 并访问 ViewState 服务器端。

【讨论】:

  • 任何示例或参考链接都会非常有帮助。
  • 在进行静态方法的 ajax 调用时是否可以访问 ViewState 属性?
【解决方案2】:

我通过 ajax 请求找到了这种方式:

致谢:https://forums.asp.net/t/1991868.aspx?Set+value+of+Viewstate+from+Javascript+or+Jquery

ViewState["dataTable"] = dt;

Javascript:

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
    $(function () {

        $("#Button1").click(function () {
            //clear datatable
            $.ajax({
                type: "POST",
                url: "WebForm1.aspx/ClearDataTable",
                data: '{}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    alert('cleared');
                }
            });
            //clear other values.....
            //............
        });
    })
</script>

关于代码隐藏:

    [WebMethod]
    public static void ClearDataTable()
    {

        HttpContext.Current.Session["datatable"] = null;
    }

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多