我有这个按钮:
<ext:Button Flat="true" runat="server" ID="btnCheckV" Icon="CheckError" Scale="Large" ToolTip="Is Valid" >
<DirectEvents>
<Click OnEvent="CheckValidity" />
</DirectEvents>
</ext:Button>
我想在后面的代码中更改按钮的图标(勾选有效,交叉无效)。所以我这样做:
protected void CheckValidity(object sender, DirectEventArgs e)
{
//....validation check code
if (isValid == true)
{
btnCheckV.Icon = Icon.Tick;
e.Success = true;
}
else
{
btnCheckV.Icon = Icon.Cross;
e.Success = false;
}
}
它工作,但只是我第一次检查。例如,如果我第一次检查有效则转为勾选,但如果我再次检查并且数据无效,则不会更改为交叉
问题在于这一行:
e.Success = false;
如果在Direct Event中将Success字段设置为true,那么您的响应如下所示:
{script:"btnCheckV.setIconCls(\"#Tick\");"}
当您将其设置为false时,它看起来像这样:
{success:false}
如您所见,只发送直接事件的状态 - 按钮中的图标没有任何内容。
将您的代码更改为:
protected void CheckValidity(object sender, DirectEventArgs e)
{
//....validation check code
if (isValid == true)
btnCheckV.Icon = Icon.Tick;
else
btnCheckV.Icon = Icon.Cross;
e.Success = true;
}
它会毫无问题地工作。