我有一个具有此搜索方法的类。我的问题是,A类不支持客户端脚本。它只有在我将它放在网页中才有效。救命!另一种方法是做什么。顺便说一下,我将在我的网页上调用此方法。
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>");
}
答案 0 :(得分: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>");
}
}
当然这只是标记,但我希望你能看到我在这里展示的内容:)
答案 1 :(得分:0)
您可以将此方法的boolean
值返回到网站的来电方式
public void SearchAffectedUser()
{
if (dr.Read())
{
//return true ;
}
else
{
//return false;
}
基于boolean
,您可以显示弹出窗口。
答案 2 :(得分:0)
ClientScript属于Page类。因为Web表单是从Page类派生的,所以你可以在那里找到它。
首先,如果这只是一个业务层类,那么在这个项目中使用Web引用并不是一个好主意。如果只从Page类派生此类,那么您将能够使用ClientScript。