留言板同页面回复显示问题(关于datalist控件嵌套)

问题描述

之前我说过做一个留言板,在datalist里嵌套控件以使其可以:显示一排留言,留言下面有对应的按钮,按下按钮后,通过控制其下面控件的visible来在每条留言下面控制其相应回复是否显示。实现代码如下,但我无论按哪个留言下面的按钮它展开的都是第一条留言下面的回复,我想是我里面嵌套的控件的ID限定了的关系,但不限定的话太后又不能获取其值,求教怎么才能实现我要的功能?前台代码:<asp:DataListID="DataList1"runat="server"DataSourceID="SqlDataSource1"BackColor="White"BorderColor="White"BorderStyle="Ridge"BorderWidth="2px"CellPadding="3"CellSpacing="1"><HeaderStyleBackColor="#4A3C8C"Font-Bold="True"ForeColor="#E7E7FF"/><HeaderTemplate></HeaderTemplate><ItemStyleBackColor="#DEDFDE"ForeColor="Black"/><ItemTemplate>标题:<%#DataBinder.Eval(Container.DataItem,"title")%>&nbsp;&nbsp;&nbsp;<%#DataBinder.Eval(Container.DataItem,"name")%>于<%#DataBinder.Eval(Container.DataItem,"date")%>发表<br/>留言:<%#DataBinder.Eval(Container.DataItem,"word")%><br/><asp:LabelID="Label1"runat="server"Visible="false"Text='<%#Bind("id")%>'></asp:Label><asp:LinkButtonID="Button1"Visible="true"runat="server"OnClick="Button1_Click">查看回复</asp:LinkButton><asp:LinkButtonID="Button3"Visible="false"runat="server"OnClick="Button3_Click">收起回复</asp:LinkButton><br/><asp:Panelrunat="server"ID="Panel1"visible="false"><asp:TextBoxID="TextBox1"runat="server"Height="41px"TextMode="MultiLine"Width="1005px"ReadOnly="True"></asp:TextBox><br/><asp:ButtonID="Button2"runat="server"Text="回复"onclick="Button2_Click"/><br/>回复:<br/><asp:DataListID="DataList2"runat="server"><HeaderTemplate></HeaderTemplate><ItemTemplate><spanclass="style4"><%#DataBinder.Eval(Container.DataItem,"name")%>:</span><%#DataBinder.Eval(Container.DataItem,"word")%>(<%#DataBinder.Eval(Container.DataItem,"date")%>)<br/></ItemTemplate><FooterTemplate></FooterTemplate></asp:DataList></asp:Panel><br/></ItemTemplate><FooterStyleBackColor="#C6C3C6"ForeColor="Black"/><FooterTemplate></FooterTemplate><SelectedItemStyleBackColor="#9471DE"Font-Bold="True"ForeColor="White"/></asp:DataList><asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:leavewordConnectionString4%>"SelectCommand="SELECT*FROM[leaveword]"></asp:SqlDataSource>

后台代码:protectedvoidPage_Load(objectsender,System.EventArgse){}protectedvoidButton2_Click(objectsender,EventArgse){stringstr="DataSource=(local);InitialCatalog=leaveword;integratedsecurity=True";SqlConnectionconn=newSqlConnection(str);conn.ConnectionString=str;conn.Open();LabelLabel1=(Label)DataList1.Items[0].FindControl("Label1");stringleavewordid=Label1.Text;TextBoxTextBox1=(TextBox)DataList1.Items[0].FindControl("TextBox1");stringTextBox1_text=TextBox1.Text;stringname=Session["membername"].ToString();stringdate=System.DateTime.Now.ToString("yyyy-MM-ddhh:mm:ss");stringip=(HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null&&HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=String.Empty)?HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];stringsql="Insertinto[reply](leavewordid,name,date,ip,word)values('"+leavewordid+"','"+name+"','"+date+"','"+ip+"','"+TextBox1_text+"')";SqlCommandcmd=newSqlCommand(sql,conn);cmd.ExecuteNonQuery();conn.Close();Response.Write("<Scriptlanguage=JavaScript>alert('更新成功');window.location.href='?act=';</script>");Response.Redirect("show.aspx");}protectedvoidButton1_Click(objectsender,EventArgse){if(Session["membername"]!=null){PanelPanel1=(Panel)DataList1.Items[0].FindControl("Panel1");LinkButtonButton1=(LinkButton)DataList1.Items[0].FindControl("Button1");LinkButtonButton3=(LinkButton)DataList1.Items[0].FindControl("Button3");DataListDataList2=(DataList)DataList1.Items[0].FindControl("DataList2");LabelLabel1=(Label)DataList1.Items[0].FindControl("Label1");stringleavewordid=Label1.Text;stringstr1="DataSource=(local);InitialCatalog=leaveword;integratedsecurity=True";SqlConnectionconn=newSqlConnection(str1);conn.Open();DataSetds2=newDataSet();stringstr2="Select*From[reply]Whereleavewordid='"+leavewordid+"'";SqlDataAdapterda2=newSqlDataAdapter(str2,conn);da2.Fill(ds2,"t1");DataList2.DataSource=ds2.Tables["t1"];DataList2.DataBind();Panel1.Visible=true;Button1.Visible=false;Button3.Visible=true;conn.Close();}else{Response.Write("<scriptlanguage='javascript'>alert('登录后才可回复!')</script>");}}protectedvoidButton3_Click(objectsender,EventArgse){PanelPanel1=(Panel)DataList1.Items[0].FindControl("Panel1");LinkButtonButton1=(LinkButton)DataList1.Items[0].FindControl("Button1");LinkButtonButton3=(LinkButton)DataList1.Items[0].FindControl("Button3");Panel1.Visible=false;Button1.Visible=true;Button3.Visible=false;}

解决方案

本帖最后由 crx0607 于 2012-01-17 23:22:55 编辑
解决方案二:
不要在按钮Click事件里查找控件来控制是否显示,GridView控件里用RowCommand事件,Repeater控件用ItemCommand事件,DataList我忘了事件名叫什么,按钮的CommandName里加上个参数来标识唯一ID什么的,在事件里e.CommandName可以捕获到该值!再进一步处理,手边没有VS没法帮你实验一下~
解决方案三:
直接用repeater吧不会产生任何垃圾代码无viwstate垃圾代码
解决方案四:
这种功能最后在前台用js或jquery来做。绑定数据时都绑定好,一开始不需要显示的给个样式display=“none”,id的话你可以用留言ID或者自己定义一个递增的数值,不重复就行,前面给个前缀,比如“div”。然后js里写方法:functionshow(i){  if(document.getElementById("div"+i).style.display=="none")  {    document.getElementById("div"+i).style.display="";  }  else  {    document.getElementById("div"+i).style.display="none";  }}引用的时候:onclick='show(<%#Eval("id")%>)'

时间: 2024-10-28 09:51:26

留言板同页面回复显示问题(关于datalist控件嵌套)的相关文章

mfc tab空间上添加属性页,页面总是显示不到Tab控件上,坐标转换怎么弄来着啊

问题描述 mfc tab空间上添加属性页,页面总是显示不到Tab控件上,坐标转换怎么弄来着啊 m_tab.InsertItem(0,_T("播放列表")); m_tab.InsertItem(1,_T("搜索歌曲")); m_musiclist.Create(IDD_DIALOG_LIST,&m_tab); //m_musiclist.ShowWindow(SW_SHOW); m_musicsearch.Create(IDD_DIALOG_SEARCH,&a

WPF Frame做导航的时候 在子页面怎么获取父窗口的控件

问题描述 RTWPFFrame做导航的时候在子页面怎么获取父窗口的控件?比如<FrameDockPanel.Dock="Top"x:Name="MainFrame"NavigationUIVisibility="Hidden"Source="Welcome.xaml"/> 在Welcome.xaml页面里面怎么获取父窗口的控件并且定义事件? 解决方案 解决方案二:自己顶!!!!!解决方案三:没人来?自己顶!解决方案

ploadify上传控件问题-.NET页面多个Uploadify上传控件,上传失败!

问题描述 .NET页面多个Uploadify上传控件,上传失败! 今天遇到一个很棘手的问题,我一个页面中加了四个Uploadify上传控件.但是点击浏览按钮时选择文件后之后排在最后一个的上传控件可以正常上传文件.其他几个上传控件都选择文件之后均没有反应!也没有报什么js错误,不知道什么原因,有遇到类似此类问题的同行吗?急等大家的指点!!! 解决方案 用fiddler调试下,有没有上传的数据产生,表单名字是什么,等等,看看你是不是脚本写错了.

imageview-ImageView覆盖问题:如何将图片一直显示在GridView整体控件之上,求大神解惑?

问题描述 ImageView覆盖问题:如何将图片一直显示在GridView整体控件之上,求大神解惑? 我的整体布局是在FramLayout里有个ScrollView滚动视图,然后ScrollView里面放的是GridView加载自定义item,我想在FramLayout整体控件底部显示一个'图片A'并且随时都可以的点击的,就是想让'图片A'飘在屏幕嘴上面,但是当加载GridView中的图片时会挡住那个'图片A'也点击不了,请问怎么解决啊?? 解决方案 这个只是FrameLayout里控件的叠放顺

怎么取消显示禁用的treeview控件前面的折叠符号

问题描述 怎么取消显示禁用的treeview控件前面的折叠符号 能不能部分禁用treeview的折叠符号?怎么取消显示禁用的treeview控件前面的折叠符号,注意不是全部折叠,全部折叠的代码就不要贴了.

如何从数据库中读取图片并显示在MFC picture控件当中?

问题描述 如何从数据库中读取图片并显示在MFC picture控件当中? 如何从sqlite读取图片并显示在MFC picture控件当中?新手啊,不知道大概怎么弄,如果能给几行代码,感激不尽! 解决方案 参考:http://blog.csdn.net/zhangyulin54321/article/details/8098484 解决方案二: MFC picture控件中显示图片MFC picture控件中显示图片MFC picture控件显示图片(新手)

silverlight 数字-silverlight有没有可以显示硬件数字的控件

问题描述 silverlight有没有可以显示硬件数字的控件 silverlight有没有可以显示硬件数字的控件 解决方案 自己做一个.准备好0~9十张图片,按照数字显示对应的图片即可.

mfc-用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中

问题描述 用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中 我想用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中,有没有大神这方面的资料,或者有类似的源代码,给出一点点建议也好-- 解决方案 先用HTML View获取网页内容,再分析内容得到自己想要的信息放到控件中 解决方案二: 发送http请求,winhttp.获取内容.然后解析.再插入ListCtrl. SetItemText

市长网上留言板责任人过激回复离岗培训

新快报讯 近日,有 网友在南阳网"书记市长网上留言板"上抱怨该市"交通整治行动"中的一些问题时,当地公安部门竟然在回复帖中称该网友的行为为"螳臂当车",并将"密切关注你的煽动性言论"再"视情处置".有网友评论这是"最牛回复帖",认为这极大地损害了政府形象.对此,河南南阳市公安局承认该回复帖不恰当,对网民造成了伤害,向广大网民表示道歉,并对回帖的工作人员作出离岗培训的处罚. "最