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

C# 在ASP.NET wep页面上显示数据,c#,asp.net,C#,Asp.net,大家好,我已经解决了用中继器显示数据的问题,并且添加了一个寻呼系统。现在,我一直在寻找一种方法来创建一个购物车系统,使用我使用addtocart按钮创建的中继器。任何人都可以提供一些提示和技巧,甚至是如何实现这一点的示例代码,下面是我的代码 public partial class A4_Label : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if

大家好,我已经解决了用中继器显示数据的问题,并且添加了一个寻呼系统。现在,我一直在寻找一种方法来创建一个购物车系统,使用我使用addtocart按钮创建的中继器。任何人都可以提供一些提示和技巧,甚至是如何实现这一点的示例代码,下面是我的代码

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();
    }
公共部分类A4\u标签:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
BindRepeater();
}
}
公共无效绑定重复器()
{
SqlConnection Connstr=新的SqlConnection(ConfigurationManager.ConnectionString[“VictoriaWorksConnectionString”].ConnectionString.ToString());
SqlCommand cmd=new SqlCommand(“选择[dbo].[A4标签].ProductName[dbo].[A4标签].ProductType[dbo].[A4标签].ProductDescription[dbo].[A4标签信息].Quantity[dbo].[A4标签信息].Price FROM[dbo].[A4标签信息]其中[dbo].[A4标签].ProductID=[dbo].[A4标签信息].[A4标签信息].ProductID],Connstr);
if(Connstr.State==ConnectionState.Closed)
{
Connstr.Open();
}
DataTable dt=新的DataTable();
SqlDataAdapter adp=新的SqlDataAdapter(cmd);
自动进料(dt);
PagedDataSource pgitems=新的PagedDataSource();
数据视图dv=新数据视图(dt);
pgitems.DataSource=dv;
pgitems.allowpage=true;
pgitems.PageSize=15;
pgitems.CurrentPageIndex=页码;
如果(pgitems.PageCount>1)
{
rptpage.Visible=true;
ArrayList pages=新建ArrayList();
对于(int i=0;i
ASP.NET中没有控制台。WriteLine是为Web而构建的技术框架,而不是为Windows中的控制台应用程序而构建的

你想用的是这个

Response.Write(String.Format("{0}, {1}, {2}, {3}, {4} ", 
                             column[0], column[1],  column[2],  column[3],  column[4]));
这将写入内容作为对发送到服务器的请求的响应。我肯定会将您转发到,在那里您也可以找到有关ASP.NET的文档。您可以使用多种方法在ASP.NET网页上写入非常相同的结果,包括此方法(
Response.write
)和另一个调用视图并生成结果的方法等等。这取决于您如何运行它

为什么不使用
Response.Write()
从技术上讲,ASP.NET中可以使用这种方法来编写数据。但这不是一种好方法,例如
document.write()
在JavaScript中,它添加内容并覆盖其他数据。在ASP.NET中,它不做同样的操作,但它将数据预先添加到页面顶部,就像
控制台一样。WriteLine
附加,此方法将数据预先添加到
body
元素

相反,您可以从数据库中调用结果,然后可以使用类似Razor的语法将数据写入HTML正文

<div>@A4_Data.Readrowdata</div>
@A4_Data.Readrowdata

它将为您提供相同的结果,并且将位于您想要的div中。

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


您在这里遇到了一个问题,因为您阅读了一篇文章,其中包含了适用于winforms的代码(因此出现了
控制台.WriteLine
)。这很好,而且您从数据库中获取数据做得很好,但是渲染出来是windows和web之间的区别。研究“repeater and databinding for asp.net”,您将得到您的答案。老实说,我怀疑这个问题在这里是否会很受欢迎。您应该从任何有关asp.net的入门教程开始n ASP.NET。谢谢DeeMac,我将研究repeater和databinding,因为我想做一个购物篮功能。这就是我在网页上显示产品信息的原因。@YasarMunir-在你能跑之前先走,我的意思不是以一种高人一等的方式。确保你将问题分解成小的、可管理的任务,并阅读大量内容。打赌t寻找更多你可以从别人那里使用的代码虽然工作很辛苦,但在技术上是正确的,至少值得注意的是使用
Response。像这样写
是个糟糕的主意。输出看起来很糟糕,开发人员将无法控制它在页面上的位置。@David,没错。但是使用
Response.Write
对于ajax调用来说,只获取相关字符串是个好主意。我会将此添加到关于此细节的回答中。:)如果你说使用
响应,你可能会把他弄糊涂。在常规页面上下文中编写
。相反,对于一个简单的示例,你可以将字符串连接到标签或文本控件。嘿,伙计们,谢谢你们u对于您的建议,我想做的是在网页上以列表或表格的形式显示产品信息数据。我不想让用户将某些产品添加到购物车中。实现这一点的最佳方法是重复和数据绑定吗?@YasarMunir我们有太多可能的方法告诉您“尽可能好”。你只需要选择一种方式并尝试即时通讯
conn.Open();
command.Connection = conn;
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = reader;
GridView1.DataBind();