【发布时间】:2016-06-13 14:31:32
【问题描述】:
我有一个问题,我可以使用我的 gridview 第一次分页,但是当我尝试单击第二个页面时,没有任何反应。我已经能够确定它与一个 JQuery 脚本有关,该脚本用于在我的 gridview 中触发 OnTextChanged 事件后跳转到下一个文本框,这就像一个魅力。首先,这里是相关代码:
<asp:ScriptManager ID="ScriptManagerDetails" runat="server" ScriptMode="Release"></asp:ScriptManager>
<script type="text/javascript">
var g_CurrentTextBox;
Sys.Application.add_load(applicationLoadHandler);
function applicationLoadHandler() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
}
function endRequestHandler() {
$get(g_CurrentTextBox).focus();
$get(g_CurrentTextBox).select();
}
function onTextFocus() {
g_CurrentTextBox = event.srcElement.id;
}
</script>
<asp:UpdatePanel ID="UpdatePanelDetails" runat="server">
<ContentTemplate>
<div class="row" id="ItemResults">
<asp:GridView ID="gvDetailList" runat="server" CssClass="table table-striped table-bordered table-hover"
AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="gvDetailList_PageIndexChanging" OnRowDataBound="gvDetailList_RowDataBound" Pagesize="25" >
<Columns>
<asp:BoundField DataField="ItemNumber" HeaderText ="Item Number" SortExpression="ItemNumber" />
<asp:TemplateField HeaderText="Qty" SortExpression="QUANTITY">
<ItemTemplate>
<asp:Label ID="lblGVQuantity" runat="server" Text='<%#Eval("QUANTITY") %>'></asp:Label>
<asp:Panel ID="pnlQuantity" runat="server">
<asp:TextBox ID="txtQuantity" runat="server" class="form-control input-sm"
AutoPostBack="true" Text='<%#Eval("QUANTITY") %>' OnTextChanged="txtQuantity_TextChanged"></asp:TextBox>
<asp:CompareValidator ID="cvQuantity" runat="server" ControlToValidate="txtQuantity" Type="Integer" ForeColor="Red"
Operator="DataTypeCheck" ErrorMessage="Quantity is not numeric" Text="* Quantity is not numeric" Display="Dynamic" ValidationGroup="valAdd" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle CssClass="pagination-ys" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDetailList" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionStr%>"
>
</asp:SqlDataSource>
</div>
</ContentTemplate>
</asp:UpdatePanel>
下面是代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDetails();
}
}
private void BindDetails()
{
string strSQL = "SELECT * FROM TABLE";
SqlDetailList.SelectCommand = strSQL;
gvDetailList.DataSource = SqlDetailList;
gvDetailList.DataBind();
}
protected void gvDetailList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvDetailList.PageIndex = e.NewPageIndex;
BindDetails();
}
如果我删除脚本,分页工作正常。但我就像我说的那样,保留脚本后,它只能在第一次工作,但不能在后续页面上工作。
【问题讨论】:
-
控制台是否有 JavaScript 异常?
-
我不这么认为。我没有看到任何错误。
-
我难倒所有人了吗?哈哈。但说真的,任何帮助都将不胜感激。
标签: javascript c# jquery asp.net gridview