日期:2014-05-18  浏览次数:20427 次

DIV + InnerHtml问题
问题一,假设有

<div id="aaa" runat="server"></div>

现在我想在服务器端的一个Timer.OnTick里,不断检查数据库表中是否有新记录,如果有,
就用“aaa.InnerHtml = 新记录内容”这样的方法,在div里显示,新记录在上,旧记录在下,实现这样的效果:

<div id="aaa" runat="server">
  <div>记录三</div>
  <div>记录二</div>
  <div>记录一</div>
</div>

请问,“aaa.InnerHtml = 新记录内容”这句如何写?


问题二,承上,当div里列出的记录(div)超过4个,就要去掉早一点的那个div,如何处理?如:

<div id="aaa" runat="server">
  <div>记录五</div>
  <div>记录四</div>
  <div>记录三</div>
  <div>记录二</div>
</div>


对DIV和InnerHtml不熟悉,求代码!所需代码请用C#描述,谢谢您!

------解决方案--------------------
安装时间排序select top 1 获取记录
string[] lines=div.InnerHTML.Split(new string[]{""},StringSplitOptions.RemoveEmptyEntries)
分割,判断是否存在
再添加新纪录div.InnerHTML
或重新赋值

------解决方案--------------------
很简单的,你从后台查好数据后,按照你前台要显示的格式,写个字符串,比如
string str="<table><tr><td>值1</td></tr></table>";
然后用div.innerhtml=str ;
就行了
------解决方案--------------------
学习一下
------解决方案--------------------
最简单的方法:
  
<div id="mainDiv" runat="server">
<div id="div4">
记录四</div>
<div id="div3">
记录三</div>
<div id="div2">
记录二</div>
<div id="div1">
记录一</div>
</div>



.cs:

string str = this.mainDiv.InnerHtml;
int post1 = str.IndexOf("<div id=\"div1\">");
string str1 = str.Substring(0, post1).Replace("div2", "div1").Replace("div3", "div2").Replace("div4", "div3").Trim();
string str2 = "<div id=\"div4\">记录五</div>";
string strnew = str2 + str1;
this.mainDiv.InnerHtml = strnew;


其他的我就不多说了。
------解决方案--------------------
楼主啊,这就是字符串加减问题
div.InnerHtml = "新的" + div.InnerHtml
------解决方案--------------------
C# code


            string oldHtml = div1.InnerHtml;
            if ((oldHtml.Length - oldHtml.Replace("<br/>","").Length) / "<br/>".Length > 4)
            {
                oldHtml = oldHtml.Substring(0, oldHtml.LastIndexOf("<br/>"));
            }
            div1.InnerHtml = "新的" + DateTime.Now + "<br/>" + oldHtml;