【问题标题】:Text.Replace in gridview replacing entire cell网格视图中的 Text.Replace 替换整个单元格
【发布时间】:2014-01-22 07:27:37
【问题描述】:

我有一个绑定到 sql 数据库的 gridview。当用户输入数据时,他们必须指出该单元格的信息是否完整。为此,他们在语句末尾输入 /end/ ,它将自动更改单元格颜色。如果什么都不输入,那么什么都不会发生。

代码如下:

if (dataItem != null)
            {
                var label = dataItem["Status"].FindControl("Statuslbl") as Label;
                if (label != null)
                {
                    var item = dataItem;
                    var text = label.Text;

                    if (text.Contains("/end/"))
                    {
                        item["Status"].BackColor = Color.Lime;
                        item["Status"].Text = item["Status"].Text.Replace(@"/end/", @"");
                    }
                    else
                    {
                        item["Status"].BackColor = Color.Salmon;
                    }
                }
            }

它不只是像我需要的那样隐藏“/end/”,而是隐藏了整个单元格的内容。

我该如何解决这个问题?

【问题讨论】:

  • 如果字符串只包含“/end/”,则结果将为空白。考虑在中间字符串字段中执行操作并调试结果。还有,这里@有什么用?
  • @EmmadKareem,你能举个例子吗?我看到了另一个带有@的帖子,但不管有没有它,它的工作方式都是一样的。
  • 关于@,@ 可以用来转义字符,所以代替 s="c:\\temp\\x.txt";你可以写 s=@"c:\temp\x.txt";但在你的情况下,我认为它没有任何价值。至于值为空的原因,我不确定您是否正确访问了控件的值。在此处查看示例:jigar.net/articles/viewhtmlcontent4.aspx

标签: c# .net gridview


【解决方案1】:

发现我需要做的就是实现我的结果:

if (text.Contains("/end/"))
                    {
                        item["Test"].BackColor = Color.Lime;
                        item["Test"].Text = label.Text.Replace("/end/", " ");

                    }

真的很简单,我只需要使用label.Text。

【讨论】:

    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2021-08-31
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多