我手中有一个用户控件<asp: Button>
。在按钮单击时,我正在尝试将标签中的消息填充到淡入淡出和淡出。标签位于default.aspx页面中。用户控件放在default.aspx。
使用以下代码为fadein fadeout运行jQuery。但是一些fadein淡出的方法是不起作用的,因为这是在用户控制,因为函数没有被触发。如果它在同一页面中。功能被解雇了。
public void AssignData(string strMsg)
{
if (strMsg == "No Results")
lblMsgText.ForeColor = System.Drawing.Color.Red;
else
lblMsgText.ForeColor = System.Drawing.Color.Green;
lblMsgText.Text = strMsg;
RunJavaScriptVallidations();
}
/// <summary>
/// This method is used for validations.
/// </summary>
public void RunJavaScriptVallidations()
{
string strJavaScript = @"$('#tcPatients_tbsearch_Search1_btnSearch').click(function(){
$('#" + lblMsgText.ClientID + @"').fadeIn(1000).fadeOut(2000);
});";
ToolkitScriptManager.RegisterStartupScript(Page, GetType(), "Validations", strJavaScript, true);
}
RunJavaScriptVallidations();
- 在页面加载中调用此方法。
关于如何解决这个问题的任何想法。提前致谢。
答案 0 :(得分:1)
您需要连接此控件中按钮的ID,该控件将根据用户控制的位置而更改,因此请使用ClientID
,如下所示:< / p>
public void RunJavaScriptVallidations()
{
string strJavaScript = @"$('#" + btnSearch.ClientID + @"').click(function(){
$('#" + lblMsgText.ClientID + @"').fadeIn(1000).fadeOut(2000);
});";
ToolkitScriptManager.RegisterStartupScript(this, GetType(), "Validations", strJavaScript, true);
}
同时使用this
代替Page
,因此它已注册此 UserControl,而不是页面注册一次。