在asp.net中使用数据列表?
大家早上好 我在我的项目中放置了一个数据列表,当我单击链接按钮时,我会在该行中打开一个带有文本框和按钮的面板。它工作正常,但我的问题是,如果我单击行面板的一个链接按钮将打开,当我单击第二行链接按钮时,第二行面板将打开,但第一行面板未关闭。我想你明白我的意思了。我会再解释一遍,这是我的代码检查在asp.net中使用数据列表?,asp.net,Asp.net,大家早上好 我在我的项目中放置了一个数据列表,当我单击链接按钮时,我会在该行中打开一个带有文本框和按钮的面板。它工作正常,但我的问题是,如果我单击行面板的一个链接按钮将打开,当我单击第二行链接按钮时,第二行面板将打开,但第一行面板未关闭。我想你明白我的意思了。我会再解释一遍,这是我的代码检查 <form id="form1" runat="server"> <div> <asp:DataList ID="Mydatalist" runat ="Server"
<form id="form1" runat="server">
<div>
<asp:DataList ID="Mydatalist" runat ="Server"
OnItemCommand="Mydatalist_ItemCommand" >
<ItemTemplate >
<table >
<tr>
<td>
<asp:Label ID="lblcouname" runat ="server"
Text ='<%# Eval("country_name") %>'></asp:Label>
</td>
<td>
<asp:LinkButton ID="lnkrepl" Text="reply"
CommandName ="reply" runat ="server"
CommandArgument ='<%# Eval("country_id") %>'>
</asp:LinkButton>
</td>
</tr>
</table>
<div>
<asp:Panel ID="mypane" runat ="Server" Visible ="false" >
<asp:TextBox ID="txtpane" runat ="Server" ></asp:TextBox><br />
<asp:Button ID="btnInsert" runat="Server" Text ="Insert" />
</asp:Panel>
</div>
</ItemTemplate>
</asp:DataList>
</div>
</form>
你必须通过编程来隐藏它。DataList应该有一个items属性,因此您可以遍历所有项,使用FIndControl查找面板控件,并将其可见性设置为false 编辑:因此您需要执行以下操作:
private void HideItems()
{
foreach (var item in this.dl.Items)
{
var panel = item.FindControl("mypane") as Panel;
if (panel != null)
panel.Visible = false;
}
}
在ItemCommand中,调用此方法以隐藏所有现有控件的面板。Brian先生,我编辑了我的问题并放置了代码,请签出OK,ItemCommand将仅为您要设置为true的面板触发;您需要在我上面的帖子中添加以下代码。
private void HideItems()
{
foreach (var item in this.dl.Items)
{
var panel = item.FindControl("mypane") as Panel;
if (panel != null)
panel.Visible = false;
}
}