C#ext从后面的代码更改按钮的图标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#ext从后面的代码更改按钮的图标相关的知识,希望对你有一定的参考价值。

我有这个按钮:

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

它会毫无问题地工作。

以上是关于C#ext从后面的代码更改按钮的图标的主要内容,如果未能解决你的问题,请参考以下文章

android:从代码动态更改FAB(浮动操作按钮)图标

按钮边框厚度不会从后面的代码更改

使用 Kotlin 更改片段中的按钮背景

从android中的片段更改自定义ActionBar标题

HTML代码片段

HTML代码片段