在event receiver中如何弹出一个类似winform中messagebox.show 的框?

那我要对用户显示一些错误信息或者提示信息怎么搞?

 

1. 

如果是在ItemAdding或者其他进行时(ing)事件里面,可以使用HttpContext.Current.Response.Write("<script>alert('aaaa');</script>");

如果是在ItemAdded或者其他结束后(ed)事件里面,那就没招。因为这类事件是异步的,已经获取不到页面的HttpResponse。

 

2.

可以在event reciver 里控制转向错误页面。
http://www.c-sharpcorner.com/Blogs/4224/sharepoint-2010-event-handler-redirection-to-custom-error-pa.aspx

properties.Status = SPEventRecieverStatus.CancelWithRedirectUrl;
Properties.RedirectUrl = “/_layouts/MyBlog/CustomError.aspx"

 

public override void ItemAdding(SPItemEventProperties properties)

{

                base.ItemAdding(properties);

                string tite = properties.AfterProperties[“title”].ToString();

                if(tite.Contains(“_”))

                {

                                properties.Cancel = true;

                                properties.Status = SPEventRecieverStatus.CancelWithRedirectUrl;

                                Properties.RedirectUrl = “/_layouts/MyBlog/CustomError.aspx?errormessage =Inavlid

                                Title”;

                }

 

}

 

3.

Create a application page called customerror.aspx and show the error message from the query string

 

 <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="Server">    <asp:Label ID="lblError" runat="server" > </asp:Label> </asp:Content>



4.

Add the following code in the page load

 

protected void Page_Load(object sender EventArgs e)

{

      lblError.Text = Request.Param[“Error”];

}


 

5.

function openAnswerQandADialog() {
  var options = {
  url: "/_layouts/QandA_PersonalAnswer.aspx",
  width: 600,
  height: 480,
  title: "个人QandA"
  };
  SP.UI.ModalDialog.showModalDialog(options);
  }
用js调用这个函数吧,这个是sharepoint自己带的函数,使用请在webpart中引用sharepoint命名控件啊。

posted on 2011-09-26 09:26  落 枫  阅读(438)  评论(0编辑  收藏  举报