簡體   English   中英

在不使用轉發器或其他控件的情況下向ASPX頁面顯示數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM