QI有一个jQuery函数,可以使我的datagrid搜索结果可滚动 但是,如果我更新面板,滚动条就会消失,结果只会填满整个页面。是因为它还没有再次调用这个功能吗?这是我目前的代码。
的jQuery
<script type="text/javascript">
$(document).ready(function scroll() {
$('#<%=gvMapping.ClientID%>').Scrollable({ ScrollHeight: 370 });
}
)
</script>
<script type="text/javascript">
function getGL(){
var button = document.getElementById("<%= btnGetGLDept.ClientID %>");
button.click();
}
</script>
HTML
<%--Mapping Search Bar --%>
<div class="searchrev1">
<asp:TextBox ID="mpSearch" class="txtbox" runat="server" text="Please start entering Department Name or Number to search"
onfocus="if(this.value==this.defaultValue) {this.value='';$(this).css('color','#3B3B3B');}"
onblur="if(this.value=='') {this.value=this.defaultValue;$(this).css('color','rgb(173,180,195)');}" Width="400px"/>
<asp:Button ID="mapsearch" text="Search" runat="server"
onclick="getGLDepts" />
<asp:CheckBoxList ID="mpcbl" class="cbl" runat="server" DataSourceID="Rollup"
DataTextField="COA_SYSTEM" DataValueField="COA_SYSTEM" ondatabound="chkFormat" OnClick="javascript:scroll;getGL();"></asp:CheckBoxList>
<asp:SqlDataSource ID="Rollup" runat="server"
ConnectionString="<%$ ConnectionStrings:Rollup2ConnectionString %>"
SelectCommand="SELECT DISTINCT [COA_SYSTEM] FROM [T_ROLLUP_GL_EXCEPT]">
</asp:SqlDataSource>
</div>
<%--Mapping Graph --%>
<div class="botcontent">
<asp:Label ID="lblGLDeptData" runat="server"></asp:Label>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="topcontent">
<asp:GridView ID="gvMapping" runat="server" GridLines="none" AutoGenerateColumns="false">
<HeaderStyle CssClass="GVFixedHeader" />
<Columns>...</Columns>
</asp:GridView>
<asp:Button ID="btnGetGLDept" runat="server" OnClick="getGLDepts" CssClass="invisible" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
单击时,我让Checkboxlist调用函数getGL()。然后调用jquery函数调用buttom点击来调用c#代码。这是滚动不会发生的时候。
答案 0 :(得分:1)
需要添加此javascript,用于调用更新面板时
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(EndRequest);
function EndRequest(sender, args) {
$('#<%=gvMapping.ClientID%>').Scrollable({ ScrollHeight: 370 });
}
或用此
替换您的document.readySys.Application.add_load(initSomething);
function initSomething()
{
$('#<%=gvMapping.ClientID%>').Scrollable({ ScrollHeight: 370 });
// will execute on load plus on every UpdatePanel postback
}
答案 1 :(得分:0)
您的jQuery document.Ready函数只会被调用一次,因为您的网格包含在updatePanel中。 UpdatePanels导致部分回发,这将触发pageLoad事件
尝试替换
代码$(document).ready(function scroll() {
$('#<%=gvMapping.ClientID%>').Scrollable({ ScrollHeight: 370 });
});
与
function pageLoad() {
$('#<%=gvMapping.ClientID%>').Scrollable({ ScrollHeight: 370 });
}