0

I have a class that have this method for search. My problem is, A class does not support Client Script. It will only work if I place it in a Web Page. Help! What is the other way to do it. Btw, I will call this Method on my web Page.

 public void SearchAffectedUser()
    {
      //some code here

    if (dr.Read())
      {
        //some code here

      }
   else
     {
      this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", "<script type=\"text/javascript\">alert('Record Not Found. Please try again');</script>");
     }
4

3 回答 3

0

您可以将Page对象传递给该方法:

public void SearchAffectedUser(Page page)
{
  //some code here
  if (dr.Read())
  {
      //some code here
  }
  else
  {
      page.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", "<script type=\"text/javascript\">alert('Record Not Found. Please try again');</script>");
  }
}

但在我看来,这不是最好的方法。我会这样做:创建做一些工作并返回一个值(可能是 bool 或更复杂的东西)并在页面类方法中处理注册脚本的方法。

public bool SearchAffectedUser(Page page)
{
  //some code here
  if (dr.Read())
  {
      //some code here
  }
  else
  {
      return false;
  }
  return true;
}

//inside your Page class
protected void Page_Load(object sender, EvetArgs e)
{
   //logic
   if (!obj.SearchAffectedUser())
   {
      this.ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", "<script type=\"text/javascript\">alert('Record Not Found. Please try again');</script>");
   }
}

当然这只是标记,但我希望你能看到我在这里展示的内容:)

于 2013-07-26T07:12:01.980 回答
0

您可以boolean将此方法的值返回给网站的调用方方法,

public void SearchAffectedUser()
    {
    if (dr.Read())
      {
         //return true ;   
      }
   else
     {
       //return false;
     }

在此基础上,boolean您可以显示弹出窗口。

于 2013-07-26T07:13:15.270 回答
0

ClientScript 属于 Page 类。因为 Web 表单是从 Page 类派生的,所以您可以在那里找到它。

首先,如果这只是一个业务层类,那么在这个项目中拥有 Web 引用并不是一个好主意。如果只从 Page 类派生这个类,那么您将能够使用 ClientScript。

于 2013-07-26T07:14:32.773 回答