隨筆 - 30, 文章 - 0, 評論 - 9, 引用 - 0
          數(shù)據(jù)加載中……

          使用__doPostBack函數(shù)回送表單.

          在asp.net中服務器控件回送表單是通過調(diào)用__doPostBack函數(shù)來回送表單,觸發(fā)事件的,先來看看__doPostBack函數(shù):
          function __doPostBack(eventTarget, eventArgument) {
          ??? if (theForm.onsubmit == null || theForm.onsubmit()) {
          ??????? theForm.__EVENTTARGET.value = eventTarget;
          ??????? theForm.__EVENTARGUMENT.value = eventArgument;
          ??????? theForm.submit();
          ??? }
          }
          第一個參數(shù)是控件名稱,第二個參數(shù)包含事件的額外信息.
          這個使用例子中,含有一個hiddenfield隱含控件和的一個linkbutton控件,hiddenfield用于保存要存接收的值,linkbutton用于觸發(fā)點擊事件void lbtnDeleteDiscussion_Click(object sender, EventArgs e)
          例:
          ****
          <asp:hiddenfield id="hidfDiscussionId" runat="server" />
          <asp:linkbutton id="lbtnDeleteDiscussion" runat="server" onclick="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);
          }
          ****************
          現(xiàn)在在客戶端使用HTML代碼也可以可以觸發(fā)指定的服務器端事件并且傳遞一些值了.
          如:
          ?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代碼也以觸發(fā)一個刪除事件,把指定的項刪除.
          這個例子是我上一篇Blog的相關內(nèi)容,給合Cilent CallBack可以實現(xiàn)無刷新地動態(tài)生成的html代碼,并可以觸發(fā)服務器端事件

          posted @ 2006-11-07 11:36 風雨兼程 閱讀(247) | 評論 (0)編輯 收藏

          僅列出標題
          共3頁: 上一頁 1 2 3 
          主站蜘蛛池模板: 当阳市| 报价| 如东县| 内丘县| 阿巴嘎旗| 松潘县| 日土县| 河曲县| 同江市| 疏勒县| 台南市| 武乡县| 额济纳旗| 柳林县| 焉耆| 赣州市| 卢氏县| 饶河县| 涿州市| 安西县| 山丹县| 永善县| 于都县| 收藏| 冷水江市| 青浦区| 大英县| 闵行区| 黎平县| 壶关县| 绿春县| 交口县| 金堂县| 西吉县| 峡江县| 鄂州市| 安仁县| 温泉县| 万荣县| 定兴县| 泽州县|