如何将客户端 (javascript) onclick 事件添加到 DataPager 中的 Next/Previous 链接?
问问题
2292 次
2 回答
0
上面的答案(由 Sheery 提供)非常适用于自定义寻呼机元素。但是,当使用 ListView 或 DataGrid 的常用数字或 Next/Previous 分页器样式时,您几乎没有多少控制权。通过使用客户端 jQuery/javascript 选择器,您可以不显眼地将客户端处理程序附加到寻呼机元素。对于这个例子,我正在跟踪是否有任何表单字段值发生了变化,如果发生了变化,那么在允许寻呼机执行其回发到服务器的默认行为之前,我们正在与用户确认他们有未保存的更改。
$(function () {
var _formChanged = false;
// grabs all pager links in last row of table named dgQuestions
// and attachs a click eventhandler via jQuery library
$("#dgQuestions tr:last a").click(function(e) {
if (!_formChanged)
return true;
var ok = confirm('You have UNSAVED changes. Continue?');
if (ok) {
return true;
}
else {
//Prevent the submit event and remain on the screen
e.preventDefault();
return false;
}
});
// delegates change event handling to the form to indicate if ANY
// form field value changed for testing prior to paging
$("#form1").change(function(e) {
_formChanged = true;
});
});
});
或者
也可以利用窗口的 beforeunload 事件来捕捉任何导航离开的动作,以测试未保存的更改。此代码不包括实际单击“保存”按钮。
$(window).on('beforeunload', function (e) {
if (e.originalEvent.explicitOriginalTarget.id != "btnSave") {
if (_formChanged)
return 'You have UNSAVED changes. Continue?';
}
于 2013-07-15T21:28:19.520 回答
0
您可以在数据寻呼机中添加一个新按钮并处理它的点击事件。
<asp:ListView runat="server" ID="ListView1"
DataSourceID="SqlDataSource1">
<LayoutTemplate>
<table runat="server" id=" table1">
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
<!-- This is the pager. Define all necessary markup here. -->
<asp:DataPager runat="server" ID="DataPager" PageSize="5">
<Fields>
<asp:TemplatePagerField>
<PagerTemplate>
<asp:Button ID="btn_Submit" runat="server" Text="Button" onclientclick="eventHandler(this)" />
</PagerTemplate>
</asp:TemplatePagerField>
</Fields>
</asp:DataPager>
</LayoutTemplate>
</asp:ListView>
于 2013-01-13T14:33:24.220 回答