在ASP.NET wep页面上显示数据

时间:2014-08-07 16:28:03

标签: c# asp.net

大家好我已解决了数据与转发器一起显示的问题,我添加了一个分页系统。现在我一直在寻找一种使用我使用添加到购物车按钮创建的转发器来创建购物车系统的方法。任何人都可以提供一些提示和技巧,甚至是如何实现这一目标的示例代码,以下是我的代码。

public partial class A4_Label : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            BindRepeater();
        }

    }

    public void BindRepeater()
    {
        SqlConnection Connstr = new SqlConnection(ConfigurationManager.ConnectionStrings["VictoriaWorksConnectionString"].ConnectionString.ToString());
        SqlCommand cmd = new SqlCommand("SELECT [dbo].[A4 Label].ProductName,[dbo].[A4 Label].ProductType, [dbo].[A4 Label].ProductDescription, [dbo].[A4 Label Info].Quantity, [dbo].[A4 Label Info].Price FROM [dbo].[A4 Label] ,[dbo].[A4 Label Info]  WHERE  [dbo].[A4 Label].ProductID = [dbo].[A4 Label Info].ProductID ",Connstr);

        if (Connstr.State == ConnectionState.Closed)
        {
            Connstr.Open();
        }

        DataTable dt = new DataTable();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(dt);
        PagedDataSource pgitems = new PagedDataSource();
        DataView dv = new DataView(dt);
        pgitems.DataSource = dv;
        pgitems.AllowPaging = true;
        pgitems.PageSize = 15;
        pgitems.CurrentPageIndex = PageNumber;

        if (pgitems.PageCount > 1)
        {
            rptPaging.Visible = true;
            ArrayList pages = new ArrayList();
            for (int i = 0; i < pgitems.PageCount; i++)
                pages.Add((i + 1).ToString());
            rptPaging.DataSource = pages;
            rptPaging.DataBind();
        }
        else
        {
            rptPaging.Visible = false;
        }
            A4Repeater.DataSource = pgitems;
            A4Repeater.DataBind();   
    }


    public int PageNumber
    {
        get
        {
            if (ViewState["PageNumber"] != null)
                return Convert.ToInt32(ViewState["PageNumber"]);
            else
                return 0;
        }
        set
        {
            ViewState["PageNumber"] = value;
        }
     }


    protected void rptPaging_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        PageNumber = Convert.ToInt32(e.CommandArgument) - 1;
        BindRepeater();
    }

2 个答案:

答案 0 :(得分:0)

ASP.NET中没有Console.WriteLine这样的东西。 ASP.NET是为Web构建的技术框架,而不是Windows中的控制台应用程序。

您想要使用的是

Response.Write(String.Format("{0}, {1}, {2}, {3}, {4} ", 
                             column[0], column[1],  column[2],  column[3],  column[4]));

这会将内容写为对发送到服务器的请求的响应。我肯定会转发你到ASP.NET forums那里你也可以找到关于ASP.NET的文档。您可以使用许多方法在ASP.NET网页上编写完全相同的结果,其中包括此方法(Response.Write)和另一种调用View并生成结果的方法等。取决于你如何运行它。

http://msdn.microsoft.com/en-us/library/ms525585(v=vs.90).aspx

为什么不使用Response.Write()

从技术上讲,ASP.NET中可以使用此方法来编写数据。但这不是一个好方法,例如这与JavaScript中的document.write()类似,它会添加内容并覆盖其他数据。在ASP.NET中,它不会执行相同的操作,但它会将数据添加到页面顶部,因此与Console.WriteLine追加一样,此方法会将数据预先添加到body元素。

您可以从数据库中调用结果,而不是这样。之后,您可以使用Razor语法(如

)在HTML正文中编写数据
<div>@A4_Data.Readrowdata</div>

它将为您提供相同的结果,并且将位于您希望它的div内。

答案 1 :(得分:0)

为什么不将结果绑定到Asp GridView并让技术为您完成工作?

http://www.java2s.com/Code/ASP/ADO.net-Database/BindSqlDataReadertoGridView.htm

conn.Open();
command.Connection = conn;
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = reader;
GridView1.DataBind();