多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jquery > jQuery實現GridView異步排序和分頁功能

jQuery實現GridView異步排序和分頁功能

來源:程序員人生   發布時間:2014-04-01 22:11:02 閱讀次數:3026次
經常會用到jquery.ui.tabs標簽,如我們可以把備份管理放在一個頁面上,而該頁面有兩個tab分別為備份和還原,但這樣會現在這個頁面臃腫,每次請求備份管理頁面時,服務端會把所以的備份還原信息都傳到客戶端,然后ui.tabs將兩種信息折疊起來分別顯示,好在ui.tabs給我提供ajax功能,我們的每個tab可以直接應用另外一個頁面

如:

<div id="container">
<ul>
<li><a href="#fragment-1"><span>備份</span></a></li>
<li><a href="Restore.aspx"><span>還原</span></a></li>
</ul>
</div>

但這樣,當Restore.aspx存在服務端控件時,當他與服務端交互時,將不會很理想,比如GridView自帶排序,分頁就不可能實現,因為每一次交互他總是他只會顯示你第一次加載該tab的狀態(gridview它可能總是顯示的第一頁),有時甚至會充開整個頁面。

解決這個問題,首先想到時ajax以防止被引用的頁面全部重新加載。UpdatePanel我試了一下不行,如是便想到juery。

下面我將示范如何結合jquery實現GridView的異步排序,分頁。

首先我們還時在頁面放放一個gridview,他不會作為頁面中真正顯示的部分,而是作為輔助html輸出,當一個ajax請求來到時,我們利用這個GridView,Render為Html輸出,ajax的回調函數完成顯示。為了不顯示GridView我在PreRender中設置Visible = false,不能直接設置Visible=false否則他不會被Render成html

<body onload="getPageData(1)">
<form id="form1" runat="server">
<div >
<div id='ShowData'>
<asp:GridView id="gvRestore" runat="server" Width="100%" PageSize="5" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" AllowPaging="True" OnRowDataBound="gvRestore_RowDataBound" AllowSorting="True" Height="138px" OnDataBound="gvRestore_DataBound" OnPreRender="gvRestore_PreRender" ><Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" Visible="False"></asp:BoundField>
<asp:BoundField DataField="WorkId" HeaderText="工號" SortExpression="WorkId"></asp:BoundField>
<asp:BoundField DataField="userName" HeaderText="操作人姓名" SortExpression="userName"></asp:BoundField>
<asp:BoundField DataField="operateType" HeaderText="操作類型" SortExpression="operateType"></asp:BoundField>
<asp:BoundField DataField="operateWay" HeaderText="操作方式" SortExpression="operateWay"></asp:BoundField>
<asp:BoundField DataField="operateTime" HeaderText="操作時間" SortExpression="operateTime"></asp:BoundField>
<asp:BoundField DataField="operatePath" HeaderText="保存路徑" SortExpression="operatePath"></asp:BoundField>
<asp:BoundField DataField="operateReason" HeaderText="操作原因" SortExpression="operateReason"></asp:BoundField>
<asp:TemplateField HeaderText="選擇">
<ItemTemplate>
<input id="Radio1" type="radio" name="Restore" value='<%#Eval("operatePath") %>'/><label for="Radio1">選擇</label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:SqlDataSource id="SqlDataSource1" runat="server" SelectCommand="SELECT * FROM [BackUpInfo] where operateType='備份'" ConnectionString="<%$ ConnectionStrings:BackUpConnectionString %>">
</asp:SqlDataSource>
</div>
</form>
</body>

注意,我們在Body的onload事件中指定了一個 函數,他會在頁面被加載時請求服務端,傳回數據。本身是個ajax請求

原形如下:

var getPageData=function(i)
{
$.ajax({
url:'Restore.aspx?'+new Date()+'&page='+i,//指定pageindex
type:'get',
success:function(data,textStatus)
{
$('#ShowData')[0].innerHTML=data;
},
error:function(XMLHttpRequest,textStatus)
{
//debugger;
$('#ShowData').text(XMLHttpRequest.responseText);
},
complete:function(XMLHttpRequest,textStatus)
{
}
});

接下來就是排序了,通過get方式指定排序字段,排序方向。函數如下: 當點擊GridView中HeadText時我們要觸發 sortDataGridView實現異步排序,查看GridView的原始生成內容,實際上是個A標記<a  href="javascript:__doPostBack('gvRestore','Sort$WorkId')"> 現在可以實現gridview的ajax排序和分頁 ,總結一下思路其實很簡單,但在實現的時還是走了點彎路,主要時原本想同通過code形式手工實例化一個GridView,但最終還是沒有實現,因為我添加了一個模板列。在模板列中添加一個intput type='Radio' 我在code時繼承ITemplate,但我確不知怎樣實現value='<%#Eval("operatePath") %>'的綁定,這里留下一個問題吧,誰知道,請告訴我。

我們要為該標記添加一個onclick事件,并移除href屬性值,以防止PostBack服務器。因此我在GridView的RowDataBound事件做如下處理:

protected void gvRestore_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 1; i <= 7; i++)
{
LinkButton lt = (LinkButton)e.Row.Cells[i].Controls[0];
lt.Attributes["href"] = "#";
lt.OnClientClick = string.Format(" return sortDataGridView('{0}','{1}')", lt.CommandArgument, "ASC");
}
}
if (e.Row.RowType == DataControlRowType.Pager)
{
e.Row.Visible = false;
}
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
為碼而活
積分:4237
15粉絲
7關注
欄目熱點
關閉
程序員人生
主站蜘蛛池模板: 香蕉福利视频 | 亚洲人成网站在线观看播放青青 | 久久精品国产400部免费看 | 在线观看美女网站 | h视频在线免费观看 | 久久精品免费在线观看 | 一区二区三区毛片免费 | 九九精品免费观看在线 | 午夜黄色网| 欧美操老逼| 国产美女一区精品福利视频 | 毛片色毛片18毛片美女 | 黄色大全网站 | 日本不卡一区二区三区四区 | 福利在线一区 | 最近高清中文在线观看国语字幕7 | 国产欧美又粗又猛又爽老 | 97碰碰碰免费公开在线视频 | 国产精品亚洲国产三区 | 男女上下爽无遮挡午夜免费视频 | 久久经典免费视频 | 一级看片免费视频 | 亚洲性夜 | 亚洲 欧美 另类 综合 日韩 | 欧美性猛交黑人xxxx | 久久综合久 | 国产一级做a爰片久久毛片 国产一级做a爰片久久毛片99 | 亚欧成人中文字幕一区 | 国产成人av在线 | 欧美在线成人午夜影视 | 国产精品久久国产三级国不卡顿 | 亚洲欧洲国产视频 | 亚洲妇人成熟性成熟网站 | 国产一级淫片a免费播放口欧美 | 国产高清在线精品一区二区三区 | free hd xxxx video喷水 | 欧美高清在线视频在线99精品 | 欧美一级看片免费观看视频在线 | 在线免费观看中文字幕 | 久久天天躁夜夜躁狠狠85台湾 | 麻豆影视视频高清在线观看 |