[英]Display data to ASPX page without using repeater or other controls
我在下面有一個示例代碼片段,它可以很好地工作(為了示例目的,我稍微調整了一下查詢)。 我想在ASPX文件中顯示數據,但我不想使用轉發器,數據網格或類似的東西。 我應該提到我不在MVC3工作。
在ASP 3.0中,可以使用DO WHILE循環來執行此操作,我似乎無法在ASPX中使用它。 有人可以發布一個可以完成這項工作的代碼片段嗎? 提前謝謝了。
public void sqlconn2(object sender, EventArgs e)
{
SqlConnection cn = null;
cn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConn"].ToString());
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT DISTINCT submajor.subid FROM subdetails", cn);
myreader = cmd.ExecuteReader();
}
public static SqlDataReader myreader { get; set; }
編輯:如果我將代碼直接放在標記中,它就可以了。 顯然我不想這樣做。 以下是標記代碼的工作示例:
<%
System.Data.SqlClient.SqlConnection cn = null;
cn = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["sqlConn"].ToString());
cn.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("SELECT DISTINCT submajor.subid FROM subdetails", cn);
myreader = cmd.ExecuteReader();
%>
<%
while (myreader.Read())
{
if (myreader["subid"] != null)
{%>
<div><%Response.Write(myreader["subid"]);%></div>
<%}
}
%>
不幸的是,這里有一些問題。 ASPX(ASP.NET WebForms)就是使用控件。 以任何其他方式執行它會破壞模型。
ASP.NET MVC幾乎要求您必須自己完成,而不使用控件。
這里的答案無法快速總結,但http://www.asp.net/mvc很棒,音樂商店教程應用程序 - http://www.asp.net/mvc/tutorials/mvc-music -store / mvc-music-store-part-1 - 是一個非常好的介紹/解釋。
(根據您最近的編輯,在MVC中,您編寫了代碼,該代碼在標記中顯示數據,您不想這樣做,但這確實屬於那里。常規ASPX WebForms使用屬性等將視圖抽象為控件,MVC讓你出現在視圖標記中;這是兩個最佳選擇)
您可以嘗試下面的代碼。
在您的aspx標記中添加一個Label控件
<asp:Label id="container" runat="server"/>
在您的代碼隱藏中,在您需要的地方使用您的datareader。
while (myreader.Read())
{
if (myreader["subid"] != null)
{
string str = string.Format("<div>{0}</div>",myreader["subid"]);
container.Controls.Add(new LiteralControl(str)); //label we added in markup
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.