我已经实现了jQueryPagination插件,以便轻松分页转发器控件。这工作正常,但在此页面上我有一个用户控件,允许用户搜索票号。单击要搜索的按钮时,分页将消失,我会看到所有转发器信息以及我返回的搜索结果。
当我点击链接按钮时,我的jQuery似乎不存在。
代码:
<div id="msgLinks" class="subtabs">
<asp:TextBox runat="server" ID="txtSearchTicket"></asp:TextBox>
<asp:LinkButton ID="lbSearch" runat="server" Text="Search" CausesValidation="false"
onclick="lbSearch_Click" />
</div>
jQuery(适用于页面加载)
$('#tblRecAct').paginateTable({
rowsPerPage: 5,
Title: ".h1RecentActivity"
});
$('#tblMSG').paginateTable({
rowsPerPage: 2,
Title: ".h1SubmittedMessages",
pager: ".pager2",
pageNumbers: ".pageNumbers2"
});
我甚至尝试过调用
$(".subtabs a").click(function () {
alert("Clicked");
$('#tblRecAct').paginateTable({
rowsPerPage: 5,
Title: ".h1RecentActivity"
});
});
但它仍然无效。有什么想法吗?
修改 每个请求的新代码:
页面 -
public string _Js = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
rptRecentMessages.DataSource = CMS.Model.Profile.RecentMessages(0, "");
rptRecentMessages.DataBind();
_Js = "CreatePaging();";
LoadStatusMessages();
}
}
用户控制(按住搜索按钮) -
rptRecentActivity.DataSource = CMS.Model.Profile.RecentActivity(20);
rptRecentActivity.DataBind();
_Js = "CreatePaging();";
搜索按钮单击 -
protected void lbSearch_Click(object sender, EventArgs e)
{
string searchTerms = txtSearchTicket.Text;
if (searchTerms == "")
txtSearchTicket.Style.Add("border", "1px solid red");
else
{
rptRecentMessages.DataSource = CMS.Model.Profile.RecentMessages(1, searchTerms);
rptRecentMessages.DataBind();
_Js = "CreatePaging();";
LoadStatusMessages();
}
}
页面上的jQuery代码 -
<script type="text/javascript">
$(document).ready(function () {
function CreatePaging(){
$('#tblRecAct').paginateTable({
rowsPerPage: 5,
Title: ".h1RecentActivity"
});
$('#tblMSG').paginateTable({
rowsPerPage: 2,
Title: ".h1SubmittedMessages",
pager: ".pager2",
pageNumbers: ".pageNumbers2"
});
}
$().ready(function(){
<% =(this._Js) %>
});
});
</script>
当我正在调试并立即点击搜索链接时,我没有回复到page_load,我不确定原因。
答案 0 :(得分:2)
将点击更改为
$(".subtabs a").click(function () {
alert("Clicked");
$('#tblRecAct').paginateTable({
rowsPerPage: 5,
Title: ".h1RecentActivity"
});
return false;
});
添加代码return false;
将阻止链接点击,但会运行您的jQuery代码。
修改强>
将您的jQUery代码放入一个函数中,以便您可以从c#
轻松调用它function CreatePaging(){
$('#tblRecAct').paginateTable({
rowsPerPage: 5,
Title: ".h1RecentActivity"
});
$('#tblMSG').paginateTable({
rowsPerPage: 2,
Title: ".h1SubmittedMessages",
pager: ".pager2",
pageNumbers: ".pageNumbers2"
});
}
$().ready(function(){
<% =(this._Js) %>
});
然后在你的代码中,有一个名为_Js的公共字符串变量,当你绑定Repeater时,设置_Js = "CreatePaging();";