日期:2014-05-20  浏览次数:20902 次

GridView的ItemDataBound中怎么删除掉不符合记录的行?
GridView的ItemDataBound中怎么删除掉不符合记录的行?

由于在某个框架下,绑定数据源的时候设计到的SQL比较麻烦,或者说比较难实现
因此,我考虑先将查询出的结果绑定到数据源上,然后通过ItemDataBound事件里,将不符合条件的记录删除掉,请问这个该怎么删除?

------解决方案--------------------
e.Row.Visible=false;
------解决方案--------------------
定义一个变量把 符合的东西放在里面。反正用个明显的东西。 然后循环取出的数据。与变量对比。过滤后绑定。这样试试。 说的不知道对不对。如有不对。请见谅
------解决方案--------------------
这是一个完整的例子,Title字段中含 “的”的都不显示


HTML code
<%@ Page Language="C#"  %>

<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Net" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">  

  protected void Page_Load(object sender, EventArgs e)
  {
    String ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|MengXianhui.mdb;";

    OleDbConnection cn = new OleDbConnection(ConnectionString);
    cn.Open();
    OleDbCommand cmd = new OleDbCommand("Select Title From [Document]", cn);
    GridView1.DataSource = cmd.ExecuteReader();
    GridView1.DataBind();
    cn.Close();

  }


  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      if (DataBinder.Eval(e.Row.DataItem, "Title").ToString().IndexOf("的") > -1)
      {
        e.Row.Visible = false;
      }
    }
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
</head>
<body>
  <form id="form1" runat="server">
  <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
  </asp:GridView>
  </form>
</body>
</html>

------解决方案--------------------
e.Row.Visible = false;
貌似可以的
------解决方案--------------------
探讨
这是一个完整的例子,Title字段中含 “的”的都不显示



HTML code
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@……