4

IE9 生成空白单元格,或者您可以说 Ghost Cell,带有 ASP.Net Repeater 控件。我尝试使用 javascript 正则表达式。渲染函数以运行 reg。exp。但是该页面包含很少的更新控件并产生错误。

错误:sys.webforms.pagerequestmanagerservererrorexception 无法解析从服务器接收到的消息。脚本资源.axd

我尝试了所有众所周知的链接来解决这个错误。如果你真的有,请建议我...

谢谢你

protected override void Render(HtmlTextWriter writer)
    {
      using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
      {
        base.Render(htmlwriter);
        string html = htmlwriter.InnerWriter.ToString();
         if ((ConfigurationManager.AppSettings.Get("RemoveWhitespace") + string.Empty).Equals("true", StringComparison.OrdinalIgnoreCase))
          {
            //html = Regex.Replace(html, @"(?<=[^])\t{2,}|(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,11}(?=[<])|(?=[\n])\s{2,}", string.Empty);
            html = Regex.Replace(html, @"(?<=<td[^>]*>)(?>\s+)(?!<table)|(?<!</table>\s*)\s+(?=</td>)", string.Empty);
            html = html.Replace(";\n", ";");
          }
         writer.Write(html.Trim());
      }

另一个解决方案是,但中继器失败

var expr = new RegExp('>[ \t\r\n\v\f]*<', 'g'); 
document.body.innerHTML = document.body.innerHTML.replace(expr, '><'); 
4

3 回答 3

0

您可以直接访问 Repeater 控件(在将其写入页面并由 IE 呈现之前)并根据其索引删除单元格。

于 2013-03-12T15:33:02.230 回答
0

需要去掉“< /td >”和“< td >”之间的空格。

于 2013-05-02T10:38:45.717 回答
0

找到了一个非常有用的脚本,可以防止在IE9 浏览器中呈现时 html 表格中出现不需要的单元格。

function removeWhiteSpaces()
{
   $('#myTable').html(function(i, el) {
      return el.replace(/>\s*</g, '><');
   });
}

当页面加载时你应该调用这个 javascript 函数(即 onload 事件)

于 2016-06-16T09:57:20.570 回答