欢迎光临
我们一直在努力

DataGrid同时具有分页和排序功能及注意点-.NET教程,数据库应用

建站超值云服务器,限时71元/月

当datagrid同时具有分页和排序功能时应注意在重新绑定数据源时,mydatagrid.currentpageindex=0;

下面给实现以上功能的原码,也就不多缀了

aspx中包含有datagrid和控制其数据源变化的dropdownlist

datagrid代码

<asp:datagrid id="mydatagrid" runat="server" bordercolor="#cccccc" font-size="100%" horizontalalign="center"

autogeneratecolumns="false" ondeletecommand="mydatagrid_delete" onsortcommand="sort_grid" onpageindexchanged="mydatagrid_pageindexchanged"

datakeyfield="acc_no" pagerstyle-position="bottom" pagerstyle-horizontalalign="center" pagerstyle-mode="nextprev"

pagesize="10" allowsorting="true" allowpaging="true" cellpadding="4" width="100%">

<alternatingitemstyle backcolor="#e9e9e6"></alternatingitemstyle>

<headerstyle font-bold="true" wrap="false" forecolor="white" backcolor="#999999"></headerstyle>

<columns>

<asp:buttoncolumn text="口" commandname="delete"></asp:buttoncolumn>

<asp:boundcolumn datafield="no" sortexpression="no" readonly="true" headertext="序号"></asp:boundcolumn>

<asp:boundcolumn datafield="id" sortexpression="id" headertext="id"></asp:boundcolumn>

<asp:boundcolumn datafield="name" sortexpression="name" headertext="名称"></asp:boundcolumn>

<asp:boundcolumn datafield="c_name" sortexpression="c_name" headertext="各科名称"></asp:boundcolumn>

<asp:boundcolumn datafield="flg" sortexpression="flg" headertext="项目"></asp:boundcolumn>

</columns>

<pagerstyle nextpagetext="下10件" prevpagetext="返回" horizontalalign="center"></pagerstyle>

</asp:datagrid>

dropdownlist代码

<asp:dropdownlist id="ddlwk" runat="server" autopostback="true" enabled="false">

<asp:listitem value="0">东京</asp:listitem>

<asp:listitem value="3">九州</asp:listitem>

<asp:listitem value="8">北海道</asp:listitem>

<asp:listitem value="9">四国</asp:listitem>

</asp:dropdownlist>

aspx.cs文件代码核心如下:

private void page_load(object sender, system.eventargs e)

{

if(!ispostback)

{

session["wp"] ="0";

ddlwk_gets();

bindgrid();

}

}

private void ddlwk_gets()

{

switch (session["wp"].tostring())

{

case "0":ddlwk.selectedindex=0;

break;

case "3":ddlwk.selectedindex=1;

break;

case "8":ddlwk.selectedindex=2;

break;

case "9":ddlwk.selectedindex=3;

break;

default:ddlwk.selectedindex=0;

break;

}

}

protected void bindgrid()

{

mydatagrid.datasource=getdata().tables["vco"].defaultview;

mydatagrid.databind();

//count.text=mydatagrid.columns.count.tostring();

}

/// <summary>

/// 返回data

/// </summary>

///<returns></returns>

private dataset getdata()

{

string strconn=(string) ((namevaluecollection) context.getconfig("system.web/database"))["strconn"];

using (sqlconnection conn = new sqlconnection(strconn))

{

sqlcommand cmd = new sqlcommand("sp_c",conn);

cmd.commandtype=commandtype.storedprocedure;

cmd.parameters.add("@place",sqldbtype.varchar,2);

cmd.parameters["@place"].value=session["wp"].tostring();

conn.open();

sqldataadapter da = new sqldataadapter();

da.selectcommand=cmd;

dataset ds=new dataset();

da.fill(ds,"vco");

count.text="ヒット:"+ds.tables["vco"].rows.count.tostring()+"件";

return ds;

}

}

/// <summary>

///从dataset中除一

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void mydatagrid_delete(object sender, datagridcommandeventargs e)

{

string strid=mydatagrid.datakeys[(int)e.item.itemindex].tostring();

//删除操作

}

/// <summary>

/// 分页操作

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void mydatagrid_pageindexchanged(object source, datagridpagechangedeventargs e)

{

mydatagrid.currentpageindex=e.newpageindex;

bindgrid();

}

/// <summary>

/// 排序

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

protected void sort_grid(object sender, datagridsortcommandeventargs e)

{

dataview dv= new dataview(getdata().tables["vco"]);

dv.sort= e.sortexpression.tostring();

mydatagrid.datasource=dv;

mydatagrid.databind();

}

#region web override protected void oninit(eventargs e)

{

// //

initializecomponent();

base.oninit(e);

}

/// <summary> /// </summary>

private void initializecomponent()

{

this.ddlwk.selectedindexchanged += new system.eventhandler(this.ddlwk_selectedindexchanged);

this.load += new system.eventhandler(this.page_load);

}

#endregion

private void ddlwk_selectedindexchanged(object sender, system.eventargs e)

{

session["wp"]=ddlwk.selectedvalue;

mydatagrid.currentpageindex=0;//没有这一句,当该页码超出其他数据源的范围时会出错

bindgrid();

response.write( "<script language=javascript>parent.menuframe.location.reload();</script>");

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » DataGrid同时具有分页和排序功能及注意点-.NET教程,数据库应用
分享到: 更多 (0)

相关推荐

  • 暂无文章