实在是没办法了。这个问题问了2天了。
为什么分页只显示第一页,点下一页就没数据。
如果将bind()里面的参数和button里面的onclik去掉的话。button就失效了。
各位大哥帮我一下啊。我这个是自学的。谁能帮我解决了。我每天帮他刷100分都没问题。
<script runat="server" language="c#">
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//这里是页面默认打开数据,用DataGrid显示数据。
}
else
{
bind();
}
}private void bind(object sender, EventArgs e)
{
//这里用搜索来显示数据。也用的用DataGrid显示数据
}public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
dgrdMain.CurrentPageIndex = e.NewPageIndex;
DataBind();
}
<asp:Button ID="Button1" Text="开始查询" runat="server" />
<asp:DataGrid ID="dgrdMain"……>
<PagerStyle NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
</asp:DataGrid>
为什么分页只显示第一页,点下一页就没数据。
如果将bind()里面的参数和button里面的onclik去掉的话。button就失效了。
各位大哥帮我一下啊。我这个是自学的。谁能帮我解决了。我每天帮他刷100分都没问题。
<script runat="server" language="c#">
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//这里是页面默认打开数据,用DataGrid显示数据。
}
else
{
bind();
}
}private void bind(object sender, EventArgs e)
{
//这里用搜索来显示数据。也用的用DataGrid显示数据
}public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
dgrdMain.CurrentPageIndex = e.NewPageIndex;
DataBind();
}
<asp:Button ID="Button1" Text="开始查询" runat="server" />
<asp:DataGrid ID="dgrdMain"……>
<PagerStyle NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
</asp:DataGrid>
解决方案 »
- ExcelQuicker 使用时出现 “异常来自 HRESULT:0x800A03EC”
- gridview 数据源 链接 mdf文件数据库的问题
- 如何对网站进行性能和压力测试
- 为什么我的脚本执行完之后,任务栏还有访问服务器的进度条出现?
- 高手快快帮帮忙!存储过程用变量的问题!!!!!!急急急,,先谢!
- WEB程序做多好,發現很少會用到什麽反射,委託,線程,序列化什麽的。。。
- 如何在Aspx中取得showModalDialog返回的数据!高手请进!!
- 关于添加记录的问题,望指点
- 用ASP.NET遇到的最基本问题,请大虾解疑
- bulld error!帮忙啊,asp.net+vb
- 帮忙推荐几个美工比较好的IT类公司网站
- 【menu菜单中触发子菜单事件问题】
private void bind(object sender, EventArgs e)
这里是我自己写的自己搜索的函数。
bind();调用我自己写的函数。
DataBind();我认为是分页的控件自己的函数。
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//这里是页面默认打开数据,用DataGrid显示数据。}
另外搜索出来的就别放在这里了,
加在按钮的onclick事件里
现在的问题就是。
DataBind()---》bind();
为什么我点下一页的时候就没数据了。
你的意思是Page_Load里面的else后面那截不要吗?
private void Bind()
{
if(condition)
{
sql=".........";
}
else
{
sql=".........";
}
//绑定gridview
}
public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
dgrdMain.CurrentPageIndex = e.NewPageIndex;
Bind();
}
private DataSet GetDataSet()
{
//创建DataGrid数据源
}II.DataGrid绑定
private void Bind()
{
dgrdMain.DataSource = GetDataSet();
dgrdMain.DataBind();
}III.页面绑定
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Bind();
}
}IV.分页处理
public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
dgrdMain.CurrentPageIndex = e.NewPageIndex;
Bind();
}
{
if(!IsPostBack)
{
//这里是页面默认打开数据,用DataGrid显示数据。}
另外搜索出来的就别放在这里了,
加在按钮的onclick事件里这个方法可行 将button写在脚本上触发 将button设置0,0,1,1
{
//统一获取分页文字描述
labCurrPageDes.Text = CommonFunPage.strCurrPageDes;
labSumPageDes.Text = CommonFunPage.strSumPageDes;
labRedirectPageDes.Text = CommonFunPage.strRedirectPageDes;
lbtnPageFirst.Text = CommonFunPage.strFirstPageDes;
lbtnPagePre.Text = CommonFunPage.strPrevPageDes;
lbtnPageNext.Text = CommonFunPage.strNextPageDes;
lbtnPageLast.Text = CommonFunPage.strLastPageDes;
if(Page.IsPostBack)
{
return;
} //公司显示的搜索站点
DomainURL = ConfigurationSettings.AppSettings["DomainURL"].Trim();
//显示所查询的模糊信息
ShowCorpInfoList();
//增加跳转页按钮点击事件
lbutPageGo.Attributes["onclick"] = "return chkPageGo("+labPageCount.Text.Trim()+");";
} /// <summary>
/// 功能描述:显示上市公司模糊查询列表
/// 输入参数:无
/// 输出参数:无
/// </summary>
/// <param name="dv_CorpInfo"></param>
private void ShowCorpInfoList()
{
DataView dv_CorpInfo = null; //创建视图
//获取上市公司的CorpInfo.xml的跳转地址
string strXMLCorpPath = ConfigurationSettings.AppSettings["CreateFilePath"].Trim();
strXMLCorpPath = strXMLCorpPath + @"/XML_Company/CorpInfo.xml";
//初始化上市公司信息
InitialCorpInfo(strXMLCorpPath);
if(dtCorpInfo == null)
{
ShowErrorPage("现在网络繁忙,请稍候再试","close");
return;
}
if(dtCorpInfo.Rows.Count <= 0)
{
//公司信息表中没有数据
ShowErrorPage("很抱歉,没有你所要查找的信息","close");
return;
}
dv_CorpInfo = dtCorpInfo.DefaultView;
dv_CorpInfo.Sort = "StockCode ";
if(Request.Params["txtCorpSearch"] != null)
{
if(Request.Params["txtCorpSearch"].ToString().Trim() != "")
{
ViewState["Stockocde"] = Request.Params["txtCorpSearch"].ToString().Trim();
}
}
if(ViewState["Stockocde"]!=null)
{
dv_CorpInfo.RowFilter = "StockCode like '%"+ViewState["Stockocde"].ToString()+"%'"; //进行模糊查询股票编号
}
int iCorpCount = dv_CorpInfo.Count; //获取筛选后的信息
if(iCorpCount == 0)
{
//公司信息表中没有数据
ShowErrorPage("很抱歉,没有你所要查找的信息","close");
return;
}
if(iCorpCount == 1)
{
//跳转到针对这家公司页面
Response.Redirect("~/Webs/CorpInfo/CorpIndex.aspx?StockCode="+ViewState["Stockocde"].ToString());
return;
} PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(dv_CorpInfo.Count) / Convert.ToInt32(dg_CorpLst.PageSize)));
labPageCount.Text = PageCount.ToString();
if(PageCount>0 && CurrentPageIndex == 0)
{
CurrentPageIndex=1;
}
else
{
dg_CorpLst.CurrentPageIndex = CurrentPageIndex-1 ;
}
dg_CorpLst.DataSource = (object)dv_CorpInfo;
dg_CorpLst.DataBind();
SetLinkLutton();
labCurPage.Text = CurrentPageIndex.ToString() ;
} /// <summary>
/// 功能描述:显示公司信息全称和股票代码卡号
/// 输入参数:公司全称和股票编号
/// 输出参数:字符类型
/// </summary>
/// <param name="strCorpName"></param>
/// <param name="strStockCode"></param>
/// <returns></returns>
protected string CorpCont(string strCorpName)
{
string strCorpCont = "";
strCorpCont = GetStringPartContent(strCorpName,50,true); //截取字符
return strCorpCont;
} protected string URL(string strStockCode)
{
string strURL = @"~/Webs/CorpInfo/CorpIndex.aspx?StockCode=" + strStockCode;
return strURL;
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.lbtnPageFirst.Click += new System.EventHandler(this.lbtnPageFirst_Click);
this.lbtnPagePre.Click += new System.EventHandler(this.lbtnPagePre_Click);
this.lbtnPageNext.Click += new System.EventHandler(this.lbtnPageNext_Click);
this.lbtnPageLast.Click += new System.EventHandler(this.lbtnPageLast_Click);
this.lbutPageGo.Click += new System.Web.UI.ImageClickEventHandler(this.lbutPageGo_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion //当前页属性********以下为公用复制********/
protected int CurrentPageIndex
{
get
{
object _oCurPage = ViewState["CurrentPageIndex"];
return _oCurPage == null ? 0 : Convert.ToInt32(_oCurPage);
}
set
{
ViewState["CurrentPageIndex"]=value;
}
} //当页总数属性
protected int PageCount
{
get
{
object _oPageCount = ViewState["PageCount"];
return _oPageCount == null ? 0 : Convert.ToInt32(_oPageCount);
}
set
{
ViewState["PageCount"]=value;
}
}
//判断显示按钮
private void SetLinkLutton()
{
switch(CurrentPageIndex)
{
case 0:
lbtnPageFirst.Enabled =false;
lbtnPagePre.Enabled =false;
lbtnPageNext.Enabled =false;
lbtnPageLast.Enabled =false;
break;
case 1:
lbtnPageFirst.Enabled =false;
lbtnPagePre.Enabled =false;
lbtnPageNext.Enabled =true;
lbtnPageLast.Enabled =true;
if(CurrentPageIndex==PageCount)
{
lbtnPageNext.Enabled =false;
lbtnPageLast.Enabled =false;
}
break;
default:
if(CurrentPageIndex==PageCount)
{
lbtnPageFirst.Enabled =true;
lbtnPagePre.Enabled =true;
lbtnPageNext.Enabled =false;
lbtnPageLast.Enabled =false;
}
else
{
lbtnPageFirst.Enabled =true;
lbtnPagePre.Enabled =true;
lbtnPageNext.Enabled =true;
lbtnPageLast.Enabled =true;
}
break;
}
}
private void lbtnPageFirst_Click(object sender, System.EventArgs e)
{
this.CurrentPageIndex=1;
ShowCorpInfoList();
} private void lbtnPagePre_Click(object sender, System.EventArgs e)
{
if(CurrentPageIndex>1)
{
this.CurrentPageIndex=CurrentPageIndex-1;
ShowCorpInfoList();
}
} private void lbtnPageNext_Click(object sender, System.EventArgs e)
{
if(CurrentPageIndex<PageCount)
{
this.CurrentPageIndex=CurrentPageIndex+1;
ShowCorpInfoList();
}
} private void lbtnPageLast_Click(object sender, System.EventArgs e)
{
this.CurrentPageIndex=PageCount;
ShowCorpInfoList();
} private void lbutPageGo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
this.CurrentPageIndex = Convert.ToInt32(txtPage.Text.Trim());
ShowCorpInfoList();
} private void dg_CorpLst_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
e.Item.Cells[1].ToolTip = "进入该公司信息页面";
}
}
<tr><td align=center>
<asp:DataGrid id="dg_CorpLst" runat="server" ShowHeader="False" AutoGenerateColumns="False" PageSize="15"
BorderWidth="0px" GridLines="None" AllowPaging="True" Width=690>
<AlternatingItemStyle CssClass="DataBridAltern"></AlternatingItemStyle>
<ItemStyle CssClass="DataGridItem"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="图标">
<HeaderStyle Width="100px"></HeaderStyle>
<ItemStyle CssClass="Scroll" Width=10 HorizontalAlign=Center></ItemStyle>
<ItemTemplate>
·
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink ID="hlStockCode" Target=_blank NavigateUrl='<%# URL(DataBinder.Eval(Container,"DataItem.StockCode").ToString()) %>' CssClass="titleLk" Runat=server>
<%# DataBinder.Eval(Container, "DataItem.StockCode").ToString() %>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="SimpleName" HeaderText="公司简称">
<ItemStyle CssClass="PageFont" Height="30" Width=200 HorizontalAlign=Left></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="公司全称">
<ItemStyle Width=300 HorizontalAlign=Left CssClass="PageFont"></ItemStyle>
<ItemTemplate>
<%# CorpCont(DataBinder.Eval(Container, "DataItem.CorpName").ToString()) %>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"></PagerStyle>
</asp:DataGrid>
</td>
</tr>
</table>
<table width="760" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="moretable">
<tr>
<td height="50" align="center" valign="middle"><table width="690" height="20" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#F3f3f3">
<tr>
<td align="center" class="PageFont">
<div align="center"><form runat="server" ID="Form1">
<asp:Label ID="labCurrPageDes" Runat="server" CssClass="PageFont">[页次</asp:Label>
<asp:label id="labCurPage" runat="server" ForeColor="Red"></asp:label>/
<asp:label id="labPageCount" runat="server"></asp:label>
<asp:Label ID="labSumPageDes" Runat="server">页]</asp:Label>
<asp:linkbutton id="lbtnPageFirst" runat="server" CssClass="Page_div">首页</asp:linkbutton>
<asp:linkbutton id="lbtnPagePre" runat="server" CssClass="Page_div">上页</asp:linkbutton>
<asp:linkbutton id="lbtnPageNext" runat="server" CssClass="Page_div">下页</asp:linkbutton>
<asp:linkbutton id="lbtnPageLast" runat="server" CssClass="Page_div">末页</asp:linkbutton>
<asp:Label ID="labRedirectPageDes" Runat="server" CssClass="PageFont">跳转:</asp:Label>
<asp:textbox id="txtPage" runat="server" Width="32px" Height="18px" MaxLength="5" CssClass="Input"></asp:textbox>页
<asp:imagebutton id="lbutPageGo" runat="server" ImageAlign="AbsMiddle" ImageUrl="../../images/go.gif"></asp:imagebutton>
</form>
</div>
</td>
</tr>
</table></td>
</tr>
</table>
public string DomainURL; //全站搜索的指定路径
I.创建需要绑定的数据源
private DataSet GetDataSet()
{
//创建DataGrid数据源
}II.DataGrid绑定
private void Bind()
{
dgrdMain.DataSource = GetDataSet();
dgrdMain.DataBind();
}III.页面绑定
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Bind();
}
}IV.分页处理
public void MyDataGrid_Page(object sender, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//分页
dgrdMain.CurrentPageIndex = e.NewPageIndex;
Bind();
} ================================
正解。asp.net中,你点击页面上的服务器事件时,他都会重新跑一遍Page_Load事件 ,不过是在
if(!Page.IsPostBack)
{}之外 ,所以楼主的else要去掉,在分页事件里写Bind()(你的到数据实体的事件)就行了。