免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
GridView點(diǎn)擊行按鈕的時(shí)候固定滾動(dòng)條的實(shí)現(xiàn)方法
分類: ASP.NET C# 2014-10-16 22:58 416人閱讀 評(píng)論(0) 收藏 舉報(bào)
GridView顯示的內(nèi)容行數(shù)比較多需要垂直方向滾動(dòng)條,但是遇到這樣一個(gè)問(wèn)題,如果我們把滾動(dòng)條拖到最下面,此時(shí)點(diǎn)擊GridView行按鈕事件,不論是刷新頁(yè)面其它控件還是彈出一個(gè)alert,都會(huì)導(dǎo)致GridView的滾動(dòng)條自動(dòng)回到第一行狀態(tài),用戶之前滑動(dòng)到的位置丟失了,用戶需要再次將滾動(dòng)條拖到上次的位置,操作麻煩,影響用戶體驗(yàn).

解決方案:用js記錄滾動(dòng)條坐標(biāo),實(shí)現(xiàn)錨定效果

  1. <script type="text/javascript" language="javascript">  
  2.     function RecordPostion(obj) {  
  3.         var diva = obj;  
  4.         var sx = document.getElementById('<%=dvscrollX.ClientID %>');  
  5.         var sy = document.getElementById('<%=dvscrollY.ClientID %>');  
  6.         sy.value = diva.scrollTop;  
  7.         sx.value = diva.scrollLeft;  
  8.     }  
  9.   
  10.     function GetResultFromServer() {  
  11.         var sx = document.getElementById('<%=dvscrollX.ClientID %>');  
  12.         var sy = document.getElementById('<%=dvscrollY.ClientID %>');  
  13.         //為什么div1就不用ClientID,其它服務(wù)器控件就要用?  
  14.         document.getElementById('div1').scrollTop = sy.value;  
  15.         document.getElementById('div1').scrollLeft = sx.value;  
  16.     }  
  17. </script>  

在頁(yè)面上添加兩個(gè)HiddenField,分別記錄X軸和Y軸滾動(dòng)條坐標(biāo),這里有一個(gè)小細(xì)節(jié),因?yàn)槲业捻?yè)面使用了UpdatePanel,所以在獲取HiddenField控件ID的時(shí)候,應(yīng)該用這種寫(xiě)法<%=dvscrollX.ClientID %>,如果不用UpdatePanel的話就直接寫(xiě)dvscrollX即可,對(duì)于div而言不管用不用UpdatePanel,都可以直接寫(xiě)成div1

  1. <asp:HiddenField ID="dvscrollX" runat="server" />  
  2. <asp:HiddenField ID="dvscrollY" runat="server" />  

GridView控件外側(cè)的div標(biāo)記增加js代碼 onscroll="javascript:RecordPostion(this);"

  1. <div id="div1" style="overflow: auto; line-height: 100%; letter-spacing: 1pt; height: 150px; margin:5px" onscroll="javascript:RecordPostion(this);">  
  2.     <asp:GridView ID="GridView1" runat="server" Width="98%" AutoGenerateColumns="False" CssClass="gv" DataKeyNames="管線ID" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">  
  3.          <Columns>                               
  4.               <asp:BoundField DataField="管線ID" HeaderText="管線ID" ReadOnly="true">  
  5.                    <FooterStyle CssClass="hidden" />  
  6.                    <HeaderStyle CssClass="hidden" />  
  7.                    <ItemStyle HorizontalAlign="Center" CssClass="hidden" />  
  8.               </asp:BoundField>  
  9.               <asp:TemplateField HeaderText="主項(xiàng)號(hào)">  
  10.                    <EditItemTemplate>  
  11.                         <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("主項(xiàng)號(hào)") %>'></asp:TextBox></EditItemTemplate>  
  12.                    <ItemTemplate>  
  13.                         <asp:Label ID="Label2" runat="server" Text='<%# Bind("主項(xiàng)號(hào)") %>'></asp:Label></ItemTemplate>  
  14.                    <ItemStyle HorizontalAlign="Center" Width="120px" />  
  15.                </asp:TemplateField>  
  16.                <asp:TemplateField HeaderText="明細(xì)">  
  17.                    <ItemTemplate>  
  18.                         <p class="cai">  
  19.                              <asp:LinkButton ID="lbDetails" runat="server" CommandArgument='<%# Eval("管線ID") %>' CommandName="Details" CausesValidation="False"  Text="明細(xì)" />  
  20.                         </p>  
  21.                    </ItemTemplate>  
  22.                    <HeaderStyle HorizontalAlign="Center" />  
  23.                    <ItemStyle HorizontalAlign="Center" Width="50px"/>  
  24.                </asp:TemplateField>  
  25.          </Columns>  
  26.          <RowStyle CssClass="gv_row" />  
  27.          <AlternatingRowStyle CssClass="gv_alternet_row" />  
  28.          <SelectedRowStyle CssClass="gv_selected_row" />  
  29.          <HeaderStyle CssClass="gv_header" />  
  30.      </asp:GridView>  
  31. </div>  

后臺(tái)代碼

  1. protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)  
  2.         {  
  3.             string pipelineId = e.CommandArgument.ToString();  //獲取管線id  
  4.   
  5.             if (e.CommandName == "Details")    //查看明細(xì)  
  6.             {  
  7.                 //做相應(yīng)的操作...   
  8.   
  9.                 //加載js代碼,調(diào)用GetResultFromServer()方法  
  10.                 string sjs = "GetResultFromServer();";   
  11.                 ScriptManager.RegisterClientScriptBlock(this.GridView1, this.GetType(), "", sjs, true);  
  12.   
  13.             }  
  14.         }  


最后說(shuō)明:?jiǎn)栴}解決思路來(lái)自 http://bbs.csdn.net/topics/330148083

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ListView經(jīng)典使用技巧
GridView編輯刪除操作
ECO TAB
原創(chuàng)分享!SharePoint母版頁(yè)修改(實(shí)戰(zhàn))
javascript-多選擇下拉列表中的jQuery
在gridview中把行中多余的字符用省略號(hào)代替(C#)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服