问题:在asp.net 的DataSet里我怎么屏蔽html代码呀(。

javanow 2002-02-25 09:26:50
我不想在数据库端先屏蔽。
我是用DataSet,将数据通过DataBind()到一个DataGrid里。
也可以这么理解,我想在显示数据之前,对某列的值做些修改再绑定到DataGrid里去。
如下面这个程序,我想将字段 memo里的html代码通过 Server.HtmlEncode 处理后再显示。该怎么做呢?
部分源代码是:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using cnn; //get cnn namespace to get SqlConnection
namespace group.net
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;

private void Page_Load(object sender, System.EventArgs e)
{
cnnBBS cnnBBSClass=new cnnBBS();
SqlConnection cnnBBSInstant = cnnBBSClass.getCnn(); //得到SqlConnection
DataSet ds=getDataSetFromSP(cnnBBSInstant); //得到 DataSet
DataGrid1.DataSource=ds.Tables[0].DefaultView;
DataGrid1.DataBind();




}

public DataSet getDataSetFromSP(SqlConnection cnn)
{
try
{
SqlCommand cmm=new SqlCommand("PrCM_ShowAllApplyDistributeCoin",cnn);
//cnn.Open();
cmm.CommandType=CommandType.StoredProcedure;
cnn.Close();
cnn.Dispose();
SqlDataAdapter da=new SqlDataAdapter();

da.SelectCommand=cmm;
cmm.Dispose();



DataSet ds=new DataSet();

da.Fill(ds,"Member");
return ds;
}
catch (Exception exp)
{
Response.Write ("有错误发生,或许是数据库忙,请稍候再试,如果问题仍然存在,请联系本公司,谢谢");
Response.End();
return null;
}



}

public void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e )
{
DataGrid1.CurrentPageIndex = e.NewPageIndex;

DataGrid1.DataBind();
}


#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{

this.Load += new System.EventHandler(this.Page_Load);

}
#endregion


}
}



另外,我知道用 SqlDataReader怎么做的。
可以我想用DataSet来做。
这样可以早些关闭SqlConnection对象。
帮个忙呀。

...全文
46 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
niwalker 2002-02-25
  • 打赏
  • 举报
回复
可以在两个地方,处理你自己的要求,一个是DataGrid的Create事件,另外一个就是DataGrid的DataBinded, 你要处理的Html的内容必须在后一个事件中处理,因为如果在前一个事件中处理数据,当页面加载时,会被覆盖,也就是说不能得到期待的效果。MSDN中有几篇文章非常详细地介绍了这种技术。下面是其中的一篇,希望对你有帮助:
<Summary Rows in DataGrid Controls>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp01212002.asp

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧