网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

使UpdatePanel支持上传文件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
form body
var formBody = new Sys.StringBuilder();
formBody.append(this._scriptManagerID + ''='' + this._postBackSettings.panelID + ''&'');

var count = form.elements.length;
for (var i = 0; i < count; i++)
{
//
// Traverse the input elements to construct the form body
//
}

if (this._additionalInput)
{
formBody.append(this._additionalInput);
this._additionalInput = null;
}

var request = new Sys.Net.WebRequest();
//
// prepare the web request object
//

var handler = this._get_eventHandlerList().getHandler("initializeRequest");
if (handler) {
var eventArgs = new Sys.WebForms.InitializeRequestEventArgs(
request, this._postBackSettings.sourceElement);
handler(this, eventArgs);
continueSubmit = !eventArgs.get_cancel();
}

//

this._request = request;
request.invoke();

if (evt) {
evt.preventDefault();
}
}

  请注意加粗部分的代码。可以发现有两种数据需要被添加为隐藏的输入元素。其一是ScriptManager相关的信息(第一部分的红色代码),其二则是变量“_additionalInput”的内容。我们很容易得到前者的值,但是后者的内容究竟是什么呢?我们继续阅读代码:

function Sys$WebForms$PageRequestManager 使UpdatePanel支持上传文件_网学
当前位置: 网学 > 编程文档 > ASP.net > 正文

使UpdatePanel支持上传文件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
content
  • 下一篇资讯: 通过User Control生成HTML
  • 版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号
    onFormElementClick(evt)
    {
    var element = evt.target;
    if (element.disabled) {
    return;
    }

    // Check if the element that was clicked on should cause an async postback
    this._postBackSettings = this._getPostBackSettings(element, element.name);

    if (element.name)
    {
    if (element.tagName === ''INPUT'')
    {
    var type = element.type;
    if (type === ''submit'')
    {
    this._additionalInput =
    element.name + ''='' + encodeURIComponent(element.value);
    }
    else if (type === ''image'')
    {
    var x = evt.offsetX;
    var y = evt.offsetY;
    this._additionalInput =
    element.name + ''.x='' + x + ''&'' + element.name + ''.y='' + y;
    }
    }
    else if ((element.tagName === ''BUTTON'') &&
    (element.name.length !== 0) && (element.type === ''submit''))
    {
    this._additionalInput = element.name + ''='' + encodeURIComponent(element.value);
    }
    }
    }

      _onFormElmentClick方法会在用户点击form中特定元素时执行。方法会提供变量“_additionalInput”的内容,然后紧接着,我们之前分析过的_onFormSubmit方法会被调用。于是只要我们对WebRequest的body属性进行分析,就能够轻松地得知需要像form中额外添加哪些隐藏输入元素:

    _addHiddenElement : function(name, value)
    {
    var hidden = document.createElement("input");
    hidden.name = name;
    hidden.value = value;
    hidden.type = "hidden";
    this._form.appendChild(hidden);
    Array.add(this._hiddens, hidden);
    },

    _addAdditionalHiddenElements : function()
    {
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    this._hiddens = ;

    this._addHiddenElement(prm._scriptManagerID, prm._postBackSettings.panelID);
    this._addHiddenElement("__UpdatePanelUploading__", "true");

    var additionalInput = null;
    var element = this._sourceElement;

    if (element.name)
    {
    var requestBody = this.get_webRequest().get_body();
    var index = -1;

    if (element.tagName === ''INPUT'')
    {
    var type = element.type;
    if (type === ''submit'')
    {
    index = requestBody.
  • 下一篇资讯: 通过User Control生成HTML
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号