更换马车返回“ch13?”在Datagridview中使用ONLY javascript

时间:2012-05-10 01:07:30

标签: javascript

我一直试图找到一种用html中断替换回车的方法。我认为这是cr13?不完全确定。我是编程新手。我有一个内容页面。所以我在内容区域设置了javascript。我在页面中有很多其他的javascripts。一个隐藏并显示列。所以我有办法找到列。但我想我需要找到细胞?只需要一列就可以了。我正在使用asp.net,使用vb.net,导入sql server 2008 db。不幸的是,这必须在javascript中完成,以避免点击按钮时页面重新加载。

感谢。

    function showComments() {
        Begincol_num = 8
        Endcol_num = 9
        Commentcol_num = 7
        rows = document.getElementById("<%=GridView1.ClientID%>").rows;
        for (i = 0; i < rows.length; i++) {

            rows[i].cells[Begincol_num].style.display = "none";
            rows[i].cells[Endcol_num].style.display = "none";
            rows[i].cells[Commentcol_num].style.display = "";

        }
    }

这个想法是把js用这个函数中的br替换cr(如果可能的话)。我不知道从哪里开始在评论单元格中调用替换。目前评论栏中有30个评论单元格,只会随着它的增长而增长。点击一个不打算返回服务器的按钮调用此函数,这就是我所说的只有js。

我想尽可能清楚。我知道vb和asp但js对我没有意义。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在javascript中,新行由“\ n”表示,即新行字符。如果要用<br />替换新行,请使用字符串替换函数

var stringWithBR = stringVarName.replace("\n", "<br />");

答案 1 :(得分:0)

假设您的评论直接包含在单元格中,而其间没有其他标记,您可以这样做:

// ...
 for (i = 0; i < rows.length; i++) {
  rows[i].cells[Begincol_num].style.display = "none";
  rows[i].cells[Endcol_num].style.display = "none";
  var commentCell = rows[i].cells[Commentcol_num];
  commentCell.style.display = "";
  commentCell.innerHTML = commentCell.innerHTML.replace("/\n/g", "<br />");
 }
// ...

但是,在显示评论时,做这样的事情并不是一个干净的解决方案。您应该直接在服务器上或在加载时执行此操作。否则,如果您不止一次地显示和隐藏评论,您将做一些不必要的工作,这些工作可能不是性能 - 但绝对是设计问题。

如果注释中的HTML标记内部存在换行符,则可能会发生所有问题。您可以使用innerTexttextContent来阻止这种情况,但这会删除任何标记。更好的解决方案很复杂。