我本来是用DATAGRID来提取数据库里的内容的!但我把做好的ASPX页面嵌套到别的页面里之后!我自己写的DATAGRID分页功能就出现了或多或少的问题!!~所以我想这样!!~
在新的页面里用表格显示从数据库里提取的数据!但数据库里的数据量又不确定!这样怎么样来动态生成表格呢?!代码大体上怎么写呢!谢谢大家了!我刚入行不久还是个门外汉!!单位急着用!希望大家帮帮忙啊

解决方案 »

  1.   

    直接在DATAGRID里面显示你的 数据不行吗? 知道邦定阿 根数据却不确定没关系
      

  2.   

    我也这样做的,主要在预呈现里处理数据,然后表格在呈现里直接呈现出来。
    你说的,但数据库里的数据量又不确定!??:你可以自己定pagesize呀!
      

  3.   

    int yeshu;
    int zongjilushu;
    int dangqianye2;
    private void Button3_Click(object sender, System.EventArgs e)
    {
    Response.Redirect("guanliyemian.htm");
    }
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    bangding();
    } //连接数据库!提取数据并放到DATASET中返回DV以算数量
    DataView shuliang()
    {

    SqlConnection conn = new SqlConnection("server = localhost ; database = zhongxiaowang ; user id = sa ;password =");
    SqlDataAdapter da = new SqlDataAdapter("select * from chanpintuijian  " , conn); DataSet ds = new DataSet(); da.Fill(ds,"chanpinname"); DataView dv = new DataView(); dv = ds.Tables["chanpinname"].DefaultView; return dv;
    } //算出基本的信息数量并绑定到DATAGRID中
    public void bangding()
    {

    DataView dv1 = shuliang();
    if(!IsPostBack)
    { zongjilushu = dv1.Count ;  yeshu = zongjilushu / DataGrid2.PageSize; if ((zongjilushu % DataGrid2.PageSize  ) != 0)
    {
    yeshu = yeshu + 1;
    } Label2.Text = yeshu.ToString(); Label1.Text = "1" ; Label3.Text = zongjilushu.ToString();
    }
    DataGrid2.DataSource = dv1 ;
    DataGrid2.DataBind(); } //处理在文本框内直接查找页数的操作
    private void TextBox1_TextChanged(object sender, System.EventArgs e)
    {

    //yeshu = Int32.Parse(Label2.Text.ToString());
    linkButton1.Enabled = true;
    linkbutton2.Enabled = true;
    Linkbutton3.Enabled = true;
    Linkbutton4.Enabled = true; int index = Int32.Parse(TextBox1.Text.ToString()); yeshu = Int32.Parse(Label2.Text.ToString()); if ( index >=1 && index <= yeshu)
    {
    DataGrid2.CurrentPageIndex = index -1;
    bangding();
    Label1.Text = index.ToString();
    if(index == 1)
    {
    linkButton1.Enabled = false;
    linkbutton2.Enabled = false;
    }
    else if (index ==yeshu ) 
    {
    Linkbutton3.Enabled = false;
    Linkbutton4.Enabled = false;
    }
    else
    {
    TextBox1.Text="";
    }

    bangding(); }
    else {
    DataGrid2.CurrentPageIndex = 0;
    bangding();
    Label1.Text ="1";
    }
    //Label1.Text = index.ToString();
    }
    //处理首页
    private void linkButton1_Click(object sender, System.EventArgs e)
    {
    linkButton1.Enabled = true;
    linkbutton2.Enabled = true;
    Linkbutton3.Enabled = true;
    Linkbutton4.Enabled = true;
    int dangqianye = 0; DataGrid2.CurrentPageIndex = dangqianye ; 
    bangding(); Label1.Text = "1";
    linkButton1.Enabled = false;
    linkbutton2.Enabled = false;
    } //处理尾页
    private void Linkbutton4_Click(object sender, System.EventArgs e)
    { linkButton1.Enabled = true;
    linkbutton2.Enabled = true;
    Linkbutton3.Enabled = true;
    Linkbutton4.Enabled = true;

    Linkbutton3.Enabled = false;
    Linkbutton4.Enabled = false; int dangqianye1 = Int32.Parse( (Label2.Text).ToString())-1;
    DataGrid2.CurrentPageIndex = dangqianye1 ; 
    bangding(); Label1.Text =(dangqianye1+1).ToString();
    } //处理下一页
    private void Linkbutton3_Click(object sender, System.EventArgs e)
    { linkButton1.Enabled = true;
    linkbutton2.Enabled = true;
    Linkbutton3.Enabled = true;
    Linkbutton4.Enabled = true; dangqianye2 =Int32.Parse( (Label1.Text).ToString())-1; if( dangqianye2 < Int32.Parse( (Label2.Text).ToString()))
    {
    dangqianye2 = dangqianye2 + 1;
    }

    DataGrid2.CurrentPageIndex = dangqianye2; 
    bangding();
    if(dangqianye2 == Int32.Parse( (Label2.Text).ToString())-1)
    {

    Linkbutton3.Enabled = false;
    Linkbutton4.Enabled = false;
    }
    Label1.Text= (DataGrid2.CurrentPageIndex+1).ToString();
    } //处理上一页 private void linkbutton2_Click(object sender, System.EventArgs e)
    {

    linkButton1.Enabled = true;
    linkbutton2.Enabled = true;
    Linkbutton3.Enabled = true;
    Linkbutton4.Enabled = true; int dangqianye4 =Int32.Parse( (Label1.Text).ToString())-1; if( dangqianye4 >0)
    {
    dangqianye4 = dangqianye4 - 1;
    } DataGrid2.CurrentPageIndex = dangqianye4; 
    bangding(); if(dangqianye4 == 0)
    {

    linkButton1.Enabled = false;
    linkbutton2.Enabled = false;
    }

    Label1.Text= (DataGrid2.CurrentPageIndex+1).ToString();
    }
    private void DataGrid2_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    SqlConnection connd = new SqlConnection("server = localhost ; database = zhongxiaowang ; user id = sa ;password =sa");

    SqlDataAdapter dad = new SqlDataAdapter("Delete from chanpintuijian where chanpinid = @cnamed" , connd); dad.SelectCommand.Parameters.Add("@cnamed",SqlDbType.NChar,100); dad.SelectCommand.Parameters["@cnamed"].Value = e.Item.Cells[2].Text; DataSet dsd = new DataSet(); dad.Fill(dsd); }这是我用自己给DATAGRID写的个分页程序
    把他加到ASPX里是完全没有问题都很正常!!
    然后把ASPX再加到其他的ASPX页面中这个分页程序就老出问题!!一点击就直接只剩下DATAGRID了!!
    我不知道该怎么解决!所以才想到用自动添加表格的办法!但不知道该怎么写
    大家帮帮忙吧~继续努力谢谢大家啊!!!
    会自动添加表格的兄弟们多说说啊
      

  4.   

    我会用DATAGRID绑定数据并呈现出来
    问题的关键是我这样一弄我这个分页程序就不好用了!!!~
    而且这个页面必须嵌套到另一个页面中!!所以另一个办法不就是自动添加表格来呈现数据么?有多少条数据添加多少个表格!然后我在重新写分页这不就可以了么!?大家说我这个方法能解决这个问题不?但我不会自动添加表格啊
      

  5.   

    在sql server里面设置
    create procedure .... AS
    set ROWCOUNT 10
    ......
      

  6.   

    我现在遇到的问题就是想动态生成表格然后把从SQL提出来的数据一条一个单元格的给加进去!!!但不知道该怎么写!!!大家帮忙啊!也谢谢楼上的兄弟们热心帮忙了谢谢
      

  7.   

    用datareader也可以
    Label1.Text="<table width=100%>";
    while(dr.Read())
    {
    Label1.Text+="<tr><td>" + dr.GetString(0) + "</td></tr>";
    }
    dr.Close();
    Label1.Text+="</table>";
      

  8.   

    动态生成Table可以的啊,一条记录生成一行还是一条记录生成一个Table?
    生成一行的话,直接循环查询到的记录了,一行写一个"<tr><td>"+值+"<td></tr>",看你的table结构了,生成Table的话,用Repeater比较简单点。
    不过我想你的问题不用搞这么复杂吧,再看看DataGrid如何用,应该就可以满足你的要求了。