在pageload事件中加
If Page.IsPostBack = False Then
...........
End If
这样的话,datagrid只在页面第一次加载的时候被绑定,接下来的刷新都依赖于viewstate了
If Page.IsPostBack = False Then
...........
End If
这样的话,datagrid只在页面第一次加载的时候被绑定,接下来的刷新都依赖于viewstate了
解决方案 »
- 返回到浏览前页面
- 怎么使网页滚动条不响应滚轮事件
- 孟岩:重新擦亮思考的火花
- 如何动态的在背景图上贴图
- DataGrid的模板列中的控件如何使用资源文件
- 我用FreeTextBox,把WORD里的表格拷贝到编辑器里,保存到数据库后,读取到页面表格的最后会拉长变形,而且丢失数据,急,非常感谢
- GridVeiw 更新时不想让有些列显示文本框~~~~!
- 100分求怎样用DataGrid外的textbox在datagrid中更新数据,请给例子。
- 关于validation验证控件的问题
- CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。
- 今天我们学校上不起网,我死了。不能按期完成任务了。这下我又得请朋友帮助我了。先谢谢了
- 如何把数据库表里的内容绑定到checkboxlist上?
1.要就一次把记录都进来,用自动分页,这样数据绑定就能写成Page.IsPostBack里
2.用自定义分页,分解函数
if (!Page.IsPostBack)
{
SetVirtualItemCount();
OnLoadData();
}public void OnLoadData(Object sender, EventArgs e)
{
grid.DataSource = CreateDataSource(0);
grid.DataBind();
dr.Close();
}public void SetVirtualItemCount()
{
// Set up the connection
String strConn = "DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn = new SqlConnection(strConn); // Set up the command
String strCmd = "SELECT COUNT(*) FROM products";
SqlCommand cmd = new SqlCommand(strCmd, conn);
// Execute the command
conn.Open();
int nItemCount = (int) cmd.ExecuteScalar();
conn.Close(); grid.VirtualItemCount = nItemCount;
return;
}
在Datagird的的事件再做绑定
public void PageIndexChanged(Object sender, DataGridPageChangedEventArgs e)
{
grid.CurrentPageIndex = e.NewPageIndex;
grid.DataSource = CreateDataSource(grid.CurrentPageIndex);
grid.DataBind();
dr.Close();
}
SqlDataReader dr;
private SqlDataReader CreateDataSource(int nPageIndex)
{
// page index is assumed to be 0-based
int nPageSize = grid.PageSize;
int nBaseProductID = nPageSize * nPageIndex;
// Set up the connection
String strConn = "DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn = new SqlConnection(strConn); // Set up the command
String strCmd = "SELECT TOP " + nPageSize + " " +
"productid, productname, quantityperunit, unitsinstock " +
"FROM products " +
"WHERE productid >" + nBaseProductID;
SqlCommand cmd = new SqlCommand(strCmd, conn);
// Execute the command
conn.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
If Page.IsPostBack = False Then
Bind系列动作
End If
的话,只有第一次运行可以绑定,再刷新就什么都绑定不上,因为以前的对象状态都丢失了,又没有重新初始之,当然为空了。因为我关心的是对象状态如何保持的问题,比如DATAVIEW或者DATATABLE,不用VIEWSTATUS能保持对象状态么?
{
你要的代码;
}
我用VIEWSTATUS保存不了对象,提示对象需要序列化,怎么解决啊 ??????
ViewState["DataSouce"] = DV;取出时DataView dv = (DataView)ViewState["DataSouce"];