Gridview分頁,清空,跳轉到
----------------華麗的分節符------------------------------------------------------------------
************linkbutton的Enabled設定成false,仍然可以點選的解決辦法************************************************************************
-----------------------------------------------------------------------------------------------------
可能是對Gridview生疏了,今天出來了效果,還是有點雲裡霧裡!
不過上了程式碼,以防後面又忘記了!
<asp:GridView ID="_gvGuest" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="Both" ShowFooter="true" Width="100%" AllowPaging="true"
PageSize="10" OnPageIndexChanging="_gvGuest_PageIndexChanging">
它裡面有個<PagerTemplate></PagerTemplate>標籤:
<PagerTemplate>
當前第:<asp:Label ID="lblCurrentPage" runat="server" Text="<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:Label>頁
|一共:<asp:Label ID="lblAllPage" runat="server" Text="<%#((GridView)Container.Parent.Parent).PageCount %>"></asp:Label>頁
<asp:LinkButton ID="lnkFirstPage" runat="server" CommandName="Page" CommandArgument="First">第一頁</asp:LinkButton>
<asp:LinkButton ID="lnkUpPage" runat="server" CommandName="Page" CommandArgument="Prev">上一頁</asp:LinkButton>
<asp:LinkButton ID="lnkDownPage" runat="server" CommandName="Page" CommandArgument="Next">下一頁</asp:LinkButton>
<asp:LinkButton ID="lnkLastPage" runat="server" CommandName="Page" CommandArgument="Last">最後一頁</asp:LinkButton>
</PagerTemplate>
<RowStyle BackColor="#EFF3FB" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
((GridView)Container.Parent.Parent).PageIndex + 1
((GridView)Container.Parent.Parent).PageCount
而PagerTemplate自帶的標記:First,Prev,Next,Last只需要繫結事件OnPageIndexChanging即可自動關聯!
protected void _gvGuest_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
_gvGuest.PageIndex = e.NewPageIndex;
BindData();
}
前臺繫結:OnPageIndexChanging="_gvGuest_PageIndexChanging"
效果圖:【沒有美工,醜了點,(*^__^*) 嘻嘻】
補充:首頁,尾頁是否可以點選!
<asp:LinkButton ID="lnkFirstPage" runat="server" CommandName="Page" CommandArgument="First"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != 0 %>">第一頁</asp:LinkButton>
<asp:LinkButton ID="lnkUpPage" runat="server" CommandName="Page" CommandArgument="Prev"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != 0 %>">上一頁</asp:LinkButton>
<asp:LinkButton ID="lnkDownPage" runat="server" CommandName="Page" CommandArgument="Next"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != ((GridView)Container.Parent.Parent).PageCount - 1 %>">下一頁</asp:LinkButton>
<asp:LinkButton ID="lnkLastPage" runat="server" CommandName="Page" CommandArgument="Last"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != ((GridView)Container.Parent.Parent).PageCount - 1 %>">最後一頁</asp:LinkButton>
都是跟PageIndex做比較:首頁就直接跟0做比較!尾頁就跟PageCount做比較!
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != ((GridView)Container.Parent.Parent).PageCount - 1 %>"
繫結行,繫結資料行!
如果我們需要給顯示的資料新增%,我們可以用RowDataBind()來繫結!
//格式化繫結:新增%
protected void _gvGuest_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判斷行為資料行
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[6].Text.Length == 1)
e.Row.Cells[6].Text += ".0%";
else
e.Row.Cells[6].Text += "%";
if (e.Row.Cells[7].Text.Length == 1)
e.Row.Cells[7].Text += ".0%";
else
e.Row.Cells[7].Text += "%";
if (e.Row.Cells[8].Text.Length == 1)
e.Row.Cells[8].Text += ".0%";
else
e.Row.Cells[8].Text += "%";
}
}
跳轉頁:TextBox或者DropDownList
跳轉到:
<asp:TextBox ID="txtNeedPage" Width="20px" runat="server" onkeyup='value=value.replace(/[^\d]/g,"") '
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
Text="<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>"></asp:TextBox>
<asp:LinkButton ID="lnkGoto" runat="server" CommandName="Page" CommandArgument="-2">Go</asp:LinkButton>
跳轉到:
<asp:DropDownList ID="ddlNeedPage" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="ddlNeedPage_SelectedIndexChanged">
</asp:DropDownList>
對應的更改PageIndexChanging事件:
//分頁
protected void _gvGuest_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView gv = sender as GridView;
int newPageIndex = 0;
if (e.NewPageIndex == -3) //【這裡的規律是:跳轉到(lnkGoto)的CommandArgument -1】
{
TextBox txtGoto = null;
GridViewRow gvRow = gv.BottomPagerRow;
if (gvRow != null)
{
txtGoto = gvRow.FindControl("txtNeedPage") as TextBox;
}
if (txtGoto != null)
{
newPageIndex = Convert.ToInt32(txtGoto.Text) - 1;
}
}
else
{
newPageIndex = e.NewPageIndex;
}
//防止輸入負數
newPageIndex = newPageIndex <= 0 ? 0 : newPageIndex;
//防止越位
newPageIndex = newPageIndex >= gv.PageCount ? gv.PageCount - 1 : newPageIndex;
//得到新的PageIndex
gv.PageIndex = newPageIndex;
BindData();
}
下拉框的首先在Bind()事件裡新增繫結:
int allPage = _gvGuest.PageCount;
for (int i = 0; i < allPage; i++)
{
ListItem item = new ListItem();
item.Text = (i + 1).ToString();
item.Value = i.ToString();
drp.Items.Add(item);
}
//textbox和drp的值一致
drp.SelectedValue = Convert.ToString(_gvGuest.PageIndex);
PS:為了讓drp和textbox與頁數對應,在繫結之後加上讓drp的selectValue一致就ok!
然後在下拉事件裡:
protected void ddlNeedPage_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList drop = sender as DropDownList;
int newPageIndex = Convert.ToInt32(drop.SelectedValue.ToString());
this._gvGuest.PageIndex = newPageIndex;
BindData();
}
最後的效果圖:
假設:我們的_gvGuest跟UpdatePanel,UpdateProgress一起使用,為了能夠讓UpdateProgress達到提醒的作用,必定要清空_gvGuest!
jquery程式碼:
function clearData() {
//$("#<%=_gvGuest.ClientID %>").empty();
$("#_gvGuest").empty();
}
ps:第一種寫法實在有母版頁的情況下,否則報錯!沒有母版頁也可以!
第二種沒有母版頁使用!
然後在button或者linkbutton的OnClientClick="return clearData();"
--補充於:2012年11月30日 16:01:42,歡迎補充!!!!!
————————————————共贏才是王道————————————————
雖然設定了linkbutton的Enabled為false,但是他的click還在,解決辦法:
在_gvGuest_RowDataBound中設定linkbutton的OnClientClick為“”
protected void _gvGuest_RowDataBound(object sender, GridViewRowEventArgs e)
{if (e.Row.RowType == DataControlRowType.Pager)
{
LinkButton lnkFirstPage = e.Row.FindControl("lnkFirstPage") as LinkButton;
if (lnkFirstPage.Enabled == false)
lnkFirstPage.OnClientClick = "";
LinkButton lnkUpPage = e.Row.FindControl("lnkUpPage") as LinkButton;
if (lnkUpPage.Enabled == false)
lnkUpPage.OnClientClick = "";
LinkButton lnkDownPage = e.Row.FindControl("lnkDownPage") as LinkButton;
if (lnkDownPage.Enabled == false)
lnkDownPage.OnClientClick = "";
LinkButton lnkLastPage = e.Row.FindControl("lnkLastPage") as LinkButton;
if (lnkLastPage.Enabled == false)
lnkLastPage.OnClientClick = "";
}
}
這樣他就點不動了,哈哈!
相關文章
- 手動繫結SQLDataSource到GridView後分頁的問題(轉)SQLLDAView
- iOS應用跳轉到appstore評分,首頁iOSAPP
- ios跳轉到通用頁面iOS
- gridview中實現分頁View
- js頁面跳轉的問題(跳轉到父頁面、最外層頁面、本頁面)JS
- 使用ObjectDataSource實現GridView分頁ObjectView
- C# GridView 分頁顯示C#View
- nginx 設定 404 500 頁面跳轉到指定頁面Nginx
- gridview分頁變成上一頁,下一頁模式View模式
- tomcat埠號直接跳轉到專案首頁Tomcat
- vue-cli 跳轉到頁面指定位置Vue
- asyUI分頁中,如何實現頁面跳轉,再返回時,...UI
- 用下拉選單控制gridview的分頁View
- 鴻蒙Navigation處理啟動頁跳轉到首頁問題鴻蒙Navigation
- Flutter頁面跳轉到IOS原生介面 如何實現?FlutteriOS
- 點選連結跳轉到應用指定頁面
- jQuery點選平滑跳轉到頁面指定位置jQuery
- vue頁面跳轉Vue
- Flutter頁面跳轉Flutter
- javascript 跳轉頁面JavaScript
- js頁面跳轉JS
- react跳轉url,跳轉外鏈,新頁面開啟頁面React
- ADFS3.0/4.0 訪問登入頁跳轉到登出介面後再跳轉回登入頁的方法S3
- js跳轉頁面方法(轉)JS
- Python教程:如何免驗證跳轉到內容頁?Python
- 指定秒數之後跳轉到其他頁面程式碼
- 在session過期後如何跳轉到登入頁面Session
- PHP彈出提示框並跳轉到新頁面即重定向到新頁面PHP
- PHP頁面跳轉如何實現延時跳轉PHP
- Flutter:如何跳轉頁面?Flutter
- JavaScript 頁面跳轉效果JavaScript
- router跳轉page頁面
- 在MVC中實現 網頁錯誤跳轉到500統一頁面MVC網頁
- GridView 自定義模版自定義修改,刪除,分頁View
- app跳轉到指定appAPP
- 案例分享,Appium+Python實現APP啟動頁跳轉到首頁APPPython
- 微信瀏覽器跳轉頁面後再返回,如何恢復到跳轉前的位置的問題。瀏覽器
- JavaScript頁面跳轉程式碼JavaScript