1

我在 a 中有一个textbox控件和一个button控件listview,我想在代码后面需要时隐藏这些控件,我尝试过使用类似这样的东西

ListViewName.FindControl("TextBoxComment").Visible = false; 

((TextBox)ListViewName.FindControl("TextBoxComment")).Visible = false

但是当我运行它给出的代码时NullReference Exception
请帮助。

 <ItemTemplate>
          <table>

               <tr>
                   <td>
                       <asp:TextBox ID="TextBoxComment" runat="server" >
                       </asp:TextBox>
                   </td>

                   <td>
                       <asp:Button ID="ButtonSubmit" runat="server"  
                            CommandName="Comment" 
                            CommandArgument='<%# Eval("FlowPostID") %>'/>
                   </td>
                </tr>
          </table>
    </ItemTemplate>
4

3 回答 3

1

您需要在 ListView 的 ItemDataBound 事件句柄上执行此操作。

var item = (ListViewItem)e.DataItem;

var txtBox = (txtBox)item.FindControl("TextBoxComment");

if(txtBox != null)
{
  txtBox.Visible = false;
}

等等……

于 2013-11-06T10:54:15.640 回答
0

您需要检查空值

var textbox=ListViewName.FindControl("TextBoxComment");
if(textbox!=null)
    ListViewName.FindControl("TextBoxComment").Visible = false; 
于 2013-11-06T10:53:10.693 回答
0

我这样做了,它有效

TextBox Box = new TextBox()

Button Butt = new Button();

Box = (TextBox)e.Item.FindControl("TextBoxComment")
Butt = (Button)e.Item.FindControl("ButtonSubmit")

Box.Visible = false;

效果很好:) 谢谢大家的努力 :)

于 2013-11-08T07:19:30.650 回答