0
我正在处理Web窗体应用程序,并且我在2-3个地方需要一些HTML代码。
我已经创建的.ascx控制像这样它表示重复的代码:Web窗体中的部分视图
protected override void Render(HtmlTextWriter writer)
{
StringBuilder str = new StringBuilder();
while (connRef.Read())
{
str.Append(connRef["some_database_field"]);
}
writer.Write(str.ToString());
base.Render(writer);
}
connRef是DataReader对象的参考,我通过我需要这段代码进行渲染。
在其他的控制,我使用下面的代码:
MSSqlConn s = new MSSqlConn();
StringBuilder str = new StringBuilder();
s.OpenConn("select * from notes order by note_date desc;");
notes.note c = (notes.note)Page.LoadControl(@"/controls/notes/note.ascx");
c.ID = "note";
c.connRef = s;
while (s.Read())
{
str.Append(Html.RenderControl(c));
}
s.CloseConn();
Response.Write(str.ToString());
MSSqlConn是我的数据库连接类。
RenderControl将任何控件呈现为HTML字符串。
在第二个代码片段中只返回一条记录而不是两条。由于某种原因,如果我将引用传递给另一个控件(c.connRef = s),s会关闭。
也许我错过了一些东西,我不知道。
如果我没有解释清楚,我很抱歉。
您的权利。我专注于功能,我忘了我实际上把Read读入另一个Read。 – lopkiju 2009-04-07 17:05:53