来自

时间:2017-08-24 07:36:07

标签: c# button extjs ext.net

我有这个按钮:

<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;
        }
    }

它有效,但只是我第一次检查。例如,如果我第一次检查有效则转为勾选,但如果我再次检查并且数据无效则不会改为交叉

1 个答案:

答案 0 :(得分:0)

问题出在这一行:

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;
}

它可以毫无问题地工作。