ClientScript在方法类中不可用
本文关键字:方法 ClientScript | 更新日期: 2023-09-27 18:24:57
我有一个类有这个搜索方法。我的问题是,一个类不支持客户端脚本。只有当我把它放在网页中时,它才会起作用。帮助另一种方法是什么?顺便说一句,我会在我的网页上调用这个方法。
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>");
}
您可以从该方法向网站的调用方方法返回boolean
值
public void SearchAffectedUser()
{
if (dr.Read())
{
//return true ;
}
else
{
//return false;
}
在boolean
的基础上,您可以显示弹出窗口。
您可以将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>");
}
}
当然,这只是一个标记,但我希望你能看到我试图在这里显示的内容:)
ClientScript属于Page类。因为web表单是从Page类派生的,所以您可以在那里找到它。
首先,如果这只是一个业务层类,那么在这个项目中使用web引用不是一个好主意。如果仅从Page类派生此类,则可以使用ClientScript。