aspx里的代码如下<asp:DataList ID="DataList3" runat="server" OnSelectedIndexChanged="DataList3_SelectedIndexChanged">
<ItemTemplate>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top"><strong class="STYLE1">咨询内容</strong>:<span class="hang"><%# Eval("Wenti")%></span></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top" class="STYLE2"><%# Eval("Huida")%></td>
</tr>
<tr>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px"></asp:Panel><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" />
</tr>
</table>
</ItemTemplate>
</asp:DataList>
后台怎么也获取不到Panel1,TextBox1,Button1
但是放在datalist外面却能获取到
<ItemTemplate>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top"><strong class="STYLE1">咨询内容</strong>:<span class="hang"><%# Eval("Wenti")%></span></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top" class="STYLE2"><%# Eval("Huida")%></td>
</tr>
<tr>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px"></asp:Panel><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" />
</tr>
</table>
</ItemTemplate>
</asp:DataList>
后台怎么也获取不到Panel1,TextBox1,Button1
但是放在datalist外面却能获取到
刚刚看见个,http://topic.csdn.net/u/20090330/18/8721c775-9f10-4ea3-a772-88bf4c991e2f.html
自己多看下
咨询内容后面是用户提出的问题
管理员登陆之后 如果有对这个问题的答复就显示答复 没有就显示文本框和提交按钮现在我想判断一下 如果某个datalist列里的问题有了答复就让 panel隐藏 没有则显示
Panel panel1=(Panel)DataList3.Items[i].FindControl("Panel1");
Label label1=(Label)DataList3.Items[i].FindControl("Label1");
if (label1.Text.Equals(""))
{
panel1.Visible = true; }
else { panel1.Visible = false;
}
}
搞定了 谢谢大家
Image img=(Image)e.Item.FindControls("img")
Image img=(Image)e.Item.FindControls("img")protected void dList_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "show")
{
string sName = ((Label)e.Item.FindControl("lblName")).Text;//找到控件,得到Text
}
}
for(int i=0;i<DataList3.Items.Count;i++){
Panel panel1=DataList3.Items[i].FindControl("Panel1") as Panel;
Label label1=DataList3.Items[i].FindControl("Label1") as Label;
if (label1!=null&&label1.Text.Equals(""))
{
if(panel1!=null)
panel1.Visible = true; }
else {
if(panel1!=null)
panel1.Visible = false;
}
}
<!--为DataList添加OnItemDataBound事件-->
<!-- 页面代码 -->
<asp:DataList ID="DataList3" runat="server" OnSelectedIndexChanged="DataList3_SelectedIndexChanged" OnItemDataBound="DataList3_ItemDataBound">
<ItemTemplate>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top"><strong class="STYLE1">咨询内容</strong>:<span class="hang"><%# Eval("Wenti")%></span></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="2" cellspacing="2" class="table2">
<tr>
<td valign="top" class="STYLE2"><%# Eval("Huida")%></td>
</tr>
<tr>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px"></asp:Panel><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" />
</tr>
</table>
</ItemTemplate>
</asp:DataList>//cs文件代码
protected void DataList3_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Panel Panel1 = e.Item.FindControl("Panel1") as Panel;
Response.Write(Panel1.ClientID);
}
}
//补充cs文件代码
protected void DataList3_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
//获取控件的引用
Panel Panel1 = e.Item.FindControl("Panel1") as Panel;
TextBox TextBox1 = e.Item.FindControl("TextBox1") as TextBox;
Button Button1 = e.Item.FindControl("Button1") as Button; Response.Write(Panel1.ClientID + "<br>");
Response.Write(TextBox1.ClientID + "<br>");
Response.Write(Button1.ClientID + "<br>"); }
}