我本来是用DATAGRID来提取数据库里的内容的!但我把做好的ASPX页面嵌套到别的页面里之后!我自己写的DATAGRID分页功能就出现了或多或少的问题!!~所以我想这样!!~
在新的页面里用表格显示从数据库里提取的数据!但数据库里的数据量又不确定!这样怎么样来动态生成表格呢?!代码大体上怎么写呢!谢谢大家了!我刚入行不久还是个门外汉!!单位急着用!希望大家帮帮忙啊
在新的页面里用表格显示从数据库里提取的数据!但数据库里的数据量又不确定!这样怎么样来动态生成表格呢?!代码大体上怎么写呢!谢谢大家了!我刚入行不久还是个门外汉!!单位急着用!希望大家帮帮忙啊
解决方案 »
- 函数参数是自定义变量类型,判断参数是何种类型(整形,字符型,对象型?),如何判断呢?
- Calendar 控件,怎么不显示下方的月历?
- CSDN中的发帖与回帖积分是怎么处理的?
- charting (c#)
- 关于.net hashMD5加密
- Microsoft JET Database Engine 错误 '80040e14' 语法错误 (操作符丢失) 在查询表达式 'ns_id=' 中。
- 用c#编一个登陆功能的网页中遇到的问题,请高手指教。。。
- 使用objectDataSource进行formview数据绑定,在更新时为什么dataItem老是为null
- 【SOS】怎么得到 DataList 控件中绑定的值
- 100分的问题
- HELP ME
- 100 分急求遍历树状关系的方法 !!!!
你说的,但数据库里的数据量又不确定!??:你可以自己定pagesize呀!
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了!!
我不知道该怎么解决!所以才想到用自动添加表格的办法!但不知道该怎么写
大家帮帮忙吧~继续努力谢谢大家啊!!!
会自动添加表格的兄弟们多说说啊
问题的关键是我这样一弄我这个分页程序就不好用了!!!~
而且这个页面必须嵌套到另一个页面中!!所以另一个办法不就是自动添加表格来呈现数据么?有多少条数据添加多少个表格!然后我在重新写分页这不就可以了么!?大家说我这个方法能解决这个问题不?但我不会自动添加表格啊
create procedure .... AS
set ROWCOUNT 10
......
Label1.Text="<table width=100%>";
while(dr.Read())
{
Label1.Text+="<tr><td>" + dr.GetString(0) + "</td></tr>";
}
dr.Close();
Label1.Text+="</table>";
生成一行的话,直接循环查询到的记录了,一行写一个"<tr><td>"+值+"<td></tr>",看你的table结构了,生成Table的话,用Repeater比较简单点。
不过我想你的问题不用搞这么复杂吧,再看看DataGrid如何用,应该就可以满足你的要求了。