在asp.net中服务器控件回送表单是通过调用__doPostBack函数来回送表单,触发事件的,先来看看__doPostBack函数:
function __doPostBack(eventTarget, eventArgument) {
    if (theForm.onsubmit == null || theForm.onsubmit()) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
第一个参数是控件名称,第二个参数包含事件的额外信息.
这个使用例子中,含有一个hiddenfield隐含控件和的一个linkbutton控件,hiddenfield用于保存要存接收的值,linkbutton用于触发点击事件void lbtnDeleteDiscussion_Click(object sender, EventArgs e)
例:
****
<asp:hiddenfield id="hidfDiscussionId" runat="server" />
<asp:linkbutton id="lbtnDeleteDiscussion" runat="server" οnclick="lbtnDeleteDiscussion_Click"></asp:linkbutton>
*******************
    void lbtnDeleteDiscussion_Click(object sender, EventArgs e)
    {
        string[] roles = SiteSettings.Instance.ReviewAdminRoles.Split(',');
        bool isDelete = false;
        foreach (string role in roles)
        {
            if (HttpContext.Current.User.IsInRole(role))
            {
                isDelete = true;
                break;
            }
        }
        if (isDelete)
        {
            if (!string.IsNullOrEmpty(hidfDiscussionId.Value))
            {
                int discussionId = int.Parse(hidfDiscussionId.Value);
                DiscussionManager.RemoveDiscussionItem(discussionId);
                Response.Redirect(Request.RawUrl);
            }
        }
    }
void Page_Load(object sender, EventArgs e)
{
    ....
    sb.Remove(0, sb.Length);
    sb.Append("function DeleteDiscussion(discussionId){");
    sb.AppendFormat("confirm('{0}');", "确定要删除这条讨论吗?");
    sb.AppendFormat("document.all('{0}').value = discussionId;", hidfDiscussionId.ClientID);
    sb.AppendFormat("__doPostBack('{0}','');", lbtnDeleteDiscussion.ClientID.Replace('_', '$'));
    sb.Append("}");
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "DeleteDiscussion", sb.ToString(), true);
}
****************
现在在客户端使用HTML代码也可以可以触发指定的服务器端事件并且传递一些值了.
如:
 sb.AppendFormat("<a href=\"javascript:DeleteDiscussion('{0}');\">",item.DiscussionId);
 sb.AppendFormat("<img src='{0}' alt='{1}' border='{2}' />",
CommerceContext.GetThemesImagePathForImgTag("Common/button_delete.gif"),
 "删除讨论","0");
sb.Append("</a>");

这里使用html代码也以触发一个删除事件,把指定的项删除.
这个例子是我上一篇Blog的相关内容,给合Cilent CallBack可以实现无刷新地动态生成的html代码,并可以触发服务器端事件

转载于:https://www.cnblogs.com/BillChen/archive/2004/12/22/80310.html

使用__doPostBack函数回送表单.相关推荐

  1. 点击按钮执行php函数,从表单按钮调用PHP函数

    搜索热词 好吧,我的脚本应该看起来像那样.我必须主要在PHP中进行操作.按钮添加应将数据保存到文件,显示应读取该文件并将其放入textarea,删除必须删除所选行,然后重置将重置所有内容. $plik ...

  2. ajax回调函数提交表单,MVC3中ajax提交表单无法执行success回调函数,怎么办?

    js代码 function AjaxInitForm(formId, btnId, isDialog, urlId){ var formObj = $('#' + formId); var btnOb ...

  3. JavaScript通用表单验证函数

    表单定义: < form name = " form1 "  action = ""  style = " behavior:url('form ...

  4. dwz框架---(2)表单回调函数

    dwz中的表单回调函数大概有下面几种: /*** 普通ajax表单提交* @param {Object} form* @param {Object} callback* @param {String} ...

  5. angularjs php登录验证,AngularJs表单验证的方法

    Anjularjs表单验证 能够根据用户在表单中输入的内容给出实时视觉反馈是非常重要的.在人与人沟通的语境中,表单验证给出来的反馈同获得正确输入同等重要. 表单验证不仅能给用户提供有用的反馈,同时也能 ...

  6. python 显示html_如何使用python在本地显示带有html表单的网...

    我是一名行为科学家,通常通过让参与者在计算机上执行某些任务并记录他们的响应来收集数据(我使用pyglet包装器PsychoPy编写程序).也就是说,程序在本地运行,数据存储在本地. 现在我想知道是否有 ...

  7. HTML提交弹出提交中,javascript – 从弹出窗口在父窗口中提交表单?

    您可以通过window.opener.document在父窗口中获取对表单的引用,如下所示: var form = window.opener.document.getElementById(&quo ...

  8. php判断表单提交是否为空,JS判断提交表单不能为空代码 多种方案

    在做前端时我们希望用户按要求提交数据了,如果提交了空我们就需要进入提示,在js中判断表单为空我们直接使用xx==空就可以了,下面看实例. 例 function checkpost() { if(myf ...

  9. php form validator 下单,PHP Form表单验证:PHP form validator使_php

    在php网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...

最新文章

  1. 验证(verification)和确认(validation)
  2. Mysql数值型字符串按照数值进行排序
  3. python实现定时发送qq消息
  4. 18.抽象模板方法———获取程序运行的时间
  5. c字符串中包含双引号_必须知道的C语言知识细节:单引号和双引号正确用法
  6. vscode,git提交push,需要每次都输入账号密码username,password
  7. 腾讯公司被法院强制执行25元,刚好是QQ超级会员的价格
  8. Flutter布局锦囊---完善信息页
  9. 小米崔宝秋:小米 AIoT 深度拥抱开源
  10. 转载 hashtable和dictionary的区别
  11. 乘风破浪:LeetCode真题_008_String to Integer (atoi)
  12. 华为关闭telnet命令_华为交换机关闭Telnet
  13. 微信抢号软件_强推|那些写微信公众号一定要拥有的软件
  14. html设置360浏览器兼容,360浏览器不兼容CSS的解决方法
  15. html a 冒泡点击,子元素点击不能冒泡到父元素
  16. IPv6地址基础理论讲解
  17. 免费AI数据标注工具-音频标注软件
  18. 数据库原理—— 存储过程
  19. C语言学习之——课程大纲
  20. numpy的repeat和pytorch的repeat

热门文章

  1. 从《黑客帝国》说起,我们如何证明这个世界不是一个系统?
  2. 我们正处于新科学革命的起点 | 学界热议AI for Science
  3. 智能如何产生,这仍然是个问题
  4. 人类如何接近“宇宙无限”?微积分的力量无处不在
  5. 腾讯发布2020人工智能白皮书:泛在智能
  6. 华为发布面向2025十大趋势
  7. 孙正义看科技未来:今后30年要把钱和精力投向哪里
  8. 日本电信企业5G部署计划 限制了华为中兴设备的使用
  9. 存在描述所有生命的方程吗?
  10. 李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司