[asp.net]C# 中︰ 在页中包含 Page_Load DataRow

标签: Asp.net HTML C#
发布时间: 2017/3/26 1:04:54
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我做的研究到从数据库提取数据和它的优良工程,不过,我目前奋力与得到的数据来传递到 <ul> 页面上的元素。

我 Page_load 函数看起来像这样︰

// Create Objects
    MySqlDataAdapter query;
    MySqlConnection db;
    int i = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        // Create DataSet to store Database Rows
        DataSet ds = new DataSet();

        // Attempt to connect the Database
        try {

            // Create a new connection to the Database
            db = new MySqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString);
            // Open the connection
            db.Open();
            // Create a new Query
            query = new MySqlDataAdapter("SELECT * FROM `test_table`", db);
            // Add Query results to the DataSet
            query.Fill(ds, "AllData");
            // Create a new DataTable to work from
            DataTable dt = new DataTable();
            // Append the rows to the DataTable
            dt = ds.Tables["AllData"];
            // Select and store needed information inside an DataRow array
            DataRow[] r = dt.Select("usergroup='1'");
            // Return all values
            Response.Write("<ul>");
            while(i != r.Length)
            {
                Response.Write("<li>" + r[i]["Name"] + "</li>");
                i++;
            }
            Response.Write("</ul>");

        }
        catch (Exception ex) {
            // Display connection error
            Response.Write("ERROR: " + ex);
        }
        finally {

            // Close the connection
            db.Close();

        }

    }

我想要现在的 Reponse.Write 里面我我已经编码的 ul 去在 aspx 页面,看起来像这样︰

    <%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="About.aspx.cs" Inherits="MyLearningSite.About" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        About
    </h2>
    <p>
        Take a look at all the people that chose us:
    </p>
    <ul>
    </ul>
</asp:Content>

有谁知道一个简单的方法,我可以编辑我 Page_load 函数,所以它自动进入里面而不是把它之前该页面装载 ul?

解决方法 1:

几乎从来没有还有一个原因,使用 Response.Write() 。 除非你真的真的知道你在做什么,与响应,否则不要使用它。

而不是试图写入页,把某种页面上的控件并修改该控件的属性。

有无数的方法来做到这一点,而这诚然是有点草率做法时相比,数据绑定之类。 但是,在当前的心态,输出原始 HTML 页面,这可能是最相近的类比,对你有什么...

如果你把东西像 Literal 页面上的控件︰

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        About
    </h2>
    <p>
        Take a look at all the people that chose us:
    </p>
    <asp:Literal runat="server" ID="myLiteral" />
</asp:Content>

然后你可以从后台代码设置该控件的内容︰

var output = new StringBuilder();
output.Append("<ul>");
while(i != r.Length)
{
    output.Append("<li>" + r[i]["Name"] + "</li>");
    i++;
}
output.Append("</ul>");
myLiteral.Text = output.ToString();

(注︰ 它有一阵子了,因为我不得不使用 WebForms,所以这是未经测试的代码。 它真正意味着展示概念。 使用控件,其中有某一品种所做各种各样的事情相当好,为你想要显示的内容页中的占位符)。

官方微信
官方QQ群
31647020