防止将空Gridview数据填充到文本框中

时间:2010-09-17 18:16:00

标签: c# asp.net gridview

我有这段代码根据gridview

的选定行中的单元格填充文本框
 protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {

        txtComment.Text = row.Cells[14].Text.Trim();

    }

如果Cell [14]没有数据,它会在txtComment文本框中显示 

当所选行的单元格中没有数据时,有没有办法阻止 出现?


编辑 我试过这个并没有用

if (row.Cells[14].Text.Trim().Length > 1)
{
    txtComment.Text = row.Cells[14].Text.Trim();
}
else
{
    txtComment.Text = row.Cells[14].Text = "";
}

=============================================== ====================

这有效

if (row.Cells[14].Text.Trim()!=" ")
{
    txtComment.Text = row.Cells[14].Text.Trim();
}
else
{
    txtComment.Text = row.Cells[14].Text = "";
}

5 个答案:

答案 0 :(得分:10)

我也有像这样的问题,我发现这也很有用:

txtComment.Text = row.Cells[14].Text.Replace(" ", "");

我希望它可以帮到你:)。

答案 1 :(得分:9)

使用NullDisplayText =" "

     <asp:BoundField DataField="EmployeeName" HeaderText="Name" NullDisplayText=" "/>

答案 2 :(得分:4)

问题是您正在访问HTML单元格的Text属性而不是数据列。 gridview需要在空表格单元格中显示&nbsp;,以便在呈现给某些浏览器时该表格单元格仍然可见。这是因为HTML并且与您的数据或代码没有任何关系;

你应该做的是这样的事情:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    DataRow myRow = (DataRow)GridView1.SelectedRow.DataItem;
    txtComment.Text = myRow[14];
}

根据DataItem的实际内容,访问数据项属性的格式会有所不同,您可以将其转换为适合您数据源的对象类型,然后相应地访问其属性。

编辑:我更改了示例代码,以演示如何将DataItem属性转换为DataRow对象。您需要将其转换为您作为DataSource提供的任何类型。我希望这更清楚。

答案 3 :(得分:2)

无需编写任何代码,只需添加HtmlEncode =&#34; false&#34;到了边界。

答案 4 :(得分:2)

使用此:

Server.HtmlDecode()

例如:

txtComment.Text = Server.HtmlDecode(row.Cells[14].Text);

它不仅处理空格,还处理其他转换,如&符号(&amp;)等。