繁体   English   中英

动态更改后,LinkBut​​ton Text属性不变

[英]LinkButton Text property not changing after dynamic change

我已经尝试了很长时间,以了解为什么我的LinkBut​​ton文本在单击时会切换为“ on”,但是当我再次单击按钮时,即使在文件后面的代码中,我仍将LinkBut​​ton.text =“关闭”。 我已经运行了调试器,当我将文本设置为“ off”时,它就像setter方法实际上并没有更新那个特定的LinkBut​​ton对象,因为下次单击它就像它从未被更新一样。

我正在使用它来测试为什么我的面板在gridview模板字段内不会打开或关闭其可见性,因为单击按钮使面板可见,然后再次按下按钮时,会发生相同的情况该面板应消失,但仍保留在屏幕上。 我的目标是使网格行中的每一行都有一个切换链接按钮,该按钮显示一个下拉到每行下方的面板。

因此,问题的实质是,为什么我可以打开控件,但不能将其关闭?

我的标记本质上与以下相同。 注意,为清楚起见,所有实际的正确服务器属性均被省略。

  • 我尝试将viewstate设置为false,但这无济于事。
  • 有趣的部分是,我将LinkBut​​ton和Panel放置在gridview之外,它确实实现了我期望的功能,即打开或关闭或将面板设置为可见或隐藏。
  • 我准备了其他一些帖子,但我不完全理解这个问题。 我读过一些人说的关于将控件嵌套在其他控件中的说法,但是我不确定这是如何引起问题的。
  • UpdatePanel.Visible = true无效
  • http://forums.asp.net/t/1773859.aspx?C+Visible+true+not+working

我的另一个想法是,按钮呈现的阶段为时已晚,我无法做出将要放置在最终html上的更改?

谁能给我任何指示?

<asp:GridView>
  <Columns>
    <asp:TemplateField>
           <ItemTemplate>
                 <div id="wrapper">
                      <asp:LinkButton ID="LinkButton1" runat="server" 
                       CommandArgument='<%# ((GridViewRow)Container).RowIndex %>' 
                       Text="off" oncommand="changeName"></asp:LinkButton>
                  </div>
           </ItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

背后的代码

    protected void changeName(object sender, CommandEventArgs e)
    {

        GridViewRow row = MyGridView.Rows[Convert.ToInt32(e.CommandArgument)];

        LinkButton button = (LinkButton)row.FindControl("LinkButton1");


        if (button.Text.Equals("off"))
        {
            button.Text = "on";

        }
        else
        {
            button.Text = "off";
        }
    }

我通过在gridview上删除“ EnableViewState =“ False”`解决了该问题。

阅读本文后http://forums.asp.net/t/1590532.aspx?Visible+invisible+panel+inside+Gridview

它给了我关于整个回发过程的一些想法。 我不确定这是否正确,但对我来说有点道理?

如果我的gridview禁用了viewstate及其所有嵌套控件(例如“ Panel”和“ LinkBut​​ton”)的父级,则这些嵌套控件的状态将在回发时丢失。 因此,如果更改未保留在gridview的viewstate中,则我在文件后面的代码中修改的任何动态更改都将丢失。

可能有一种更好的方法来实现我的设计,但目前将viewstate保留在父控件上似乎可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM