0

我是 ASP.NET 中级 C# 级别的新手,之前我写过一个 PHP 项目。我现在被困在试图在 ASP.NET 中获得类似的效果。

我正在使用什么:该项目是 C# ASP.NET Empty web application。我正在使用带有 SP1 的 Visual Studio 2010。MSSQL 2008 R2

我想要做的是使用 foreach 将 HTML 代码添加到 ASP 文件的特定内容区域中。

这就是我在 php 中要做的:

foreach ($library as $book)
{
    print "<a href=\"bookpage.php?id=".$book[book_id]"";      
    print "<h3>".$book[book_author]."</h3>";
    print " <p>".$book[book_blurb]."</p>";
}

这是我在 ASP 中尝试过的:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

    <asp:RadioButtonList ID="RadioButtonPizzaList" runat="server">
            <asp:ListItem Text="Margerita" />
            <asp:ListItem Text="Hawaain" />
            <asp:ListItem Text="Meat Supreme" />
    </asp:RadioButtonList>
</asp:Content>

但不是硬编码,我想为从数据库中检索到的listitem每个添加一个,名称存储在一个数组中。我将如何使用循环并添加一个 HTML 行,就像我在上面的 PHP 示例中所做的那样?pizzapizza

4

2 回答 2

1

我假设您的披萨列表有两列,即 Id 和 PizzaName。
你有一个方法可以从数据库中获取披萨列表,在 Pizza 类中命名为 GetList。
首先,您应该在 aspx 端添加两个属性到您的单选按钮列表控件。它们是DataValueFieldDataTextField。数据绑定所需的这些属性。

Aspx 侧

 <asp:RadioButtonList ID="RadioButtonPizzaList" DataValueField="Id" DataTextField="PizzaName"  runat="server">            
 </asp:RadioButtonList>

Side背后的代码

private void FillPizzaList()
    {
        DataTable dtList = Pizza.GetList();     

        this.RadioButtonPizzaList.DataSource = dtList;
        this.RadioButtonPizzaList.DataBind();
    }

如果您想获得所选项目的价值,您可以使用此代码获得

this.RadioButtonPizzaList.SelectedValue

注意:如果您在页面加载事件中填写单选按钮列表,请不要忘记检查是回发。

if ( !IsPostBack )
 this.FillPizzaList();
于 2013-11-03T20:47:06.083 回答
0

最后,我的问题的答案是使用 c# 创建表格并添加行,并在单元格中添加内容。当我环顾四周时,这里的一个问题得到了回答,但没有完全回答。因此,如果您看到这一点,您可以对其进行调整。

我已经从使用复选框更改为简单地将文本添加到单元格区域,但是要回答我原来的问题,可以做我对文本框所做的事情并选择要添加复选框的单元格,或者干脆不使用表格和循环复选框进入你想要的区域。

最后,我将表格添加到在 asp 代码中准备好的 div

public partial class _Default : System.Web.UI.Page
{
Database doDatabase = new Database();//custom class for querying a database
ArrayList textboxNames = new ArrayList();//just to make life easier
ArrayList pizzaNames = new ArrayList();//just to make life easier

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {

    }
        this.FillPizzaList();
}

private void FillPizzaList()
{
    int count = 1;

    string query = "select FoodID, FoodName, 'R' + Convert(char(10), FoodPrice)[Food Price], rtrim(FoodDesc)[FoodDesc] from tblFood";
    doDatabase.Do_SQLQuery(query);

    Table tablePizza = new Table();
    TableRow tr = new TableRow();
    TableCell tc = new TableCell();

    for (int c = 0; c < 4; c++)
    {
        tc = new TableCell();

        if (c == 0)
        {
            tc.Width = new Unit("15%");
            tc.Text = "<h3>Pizza Name</h3>";
        }
        else if (c == 1)
        {
            tc.Text = "<h3>Pizza Description</h3>";
        }
        else if (c == 2)
        {
            tc.HorizontalAlign = HorizontalAlign.Center;
            tc.Width = new Unit("15%");
            tc.Text = "<h3>Pizza Price</h3>";
        }
        else if (c == 3)
        {
             tc.Width = new Unit("12%");
            tc.Text = "<h3>Pizza Quantity</h3>";
        }

        tr.Cells.Add(tc);

    }
    tablePizza.Rows.Add(tr);

    foreach (DataRow dr in doDatabase.dataTbl.Rows)
    {
        tr = new TableRow();

        for (int c = 0; c < 4; c++)
        {
            tc = new TableCell();

            if (c == 0)
            {
                pizzaNames.Add(dr["FoodName"].ToString());
                tc.Text = dr["FoodName"].ToString();
            }
            else if (c == 1)
            {
                tc.Text = dr["FoodDesc"].ToString();
            }
            else if (c == 2)
            {
                tc.HorizontalAlign = HorizontalAlign.Center;
                tc.Text = dr["Food Price"].ToString();
            }
            else if (c == 3)
            {
                TextBox MyTextBox = new TextBox();

                MyTextBox.ID = "Quantity" + count;
                textboxNames.Add("Quantity" + count);

                MyTextBox.Text = "0";
                tc.Controls.Add(MyTextBox);
                count++;
            }

            tr.Cells.Add(tc);

        }
        tablePizza.Rows.Add(tr);


    }

    pizzaMenu.Controls.Add(tablePizza);//add table to div

}
于 2013-11-04T17:08:39.653 回答