允许onclick函数只执行一次
我有一个gridview,其中所有的列都是文本框。我通过jQuery实现了文本框上的onclick函数,以便当用户单击文本框时,会单击一个隐藏按钮,然后更新一个updatepanel并重新加载页面。此外,文本框应该是可编辑的。我的问题是,每次单击文本框进行编辑并重新加载页面时,都会触发该功能。如何预防它?允许onclick函数只执行一次
这里是我的文本框代码:
注:这是一个文本框只是代码。所有的文本框都使用相同的onclick功能可按
<asp:TextBox ID="txtLoginName" Onclick='<%# "timepass(" + Eval("userid") + ");" %>'
Text='<%# Eval("LoginName")%>' runat="server"></asp:TextBox>
,这里是触发后面的功能代码
<script type="text/javascript">
function timepass(pass) {
$("#btnHidden").trigger("click");
}
</script>
我想与一个隐藏的列进去值会更改的gridview的jQuery代码每次单击一个文本框,但由于该行中有许多文本框,因此它变得越来越复杂,因此看起来不可行。任何人都可以提出更好的选择吗
为了避免页面刷新,您可以简单地使用Ajax调用。
function ajaxCall(passedId){
$.post('url', { id: ajaxCall},
function(returnedData){
console.log(returnedData);
//update grid view with complex javascript
});
}
然后,你可以简单地使用的赛义的绑定代码修改后的版本
$("yourselector").click(function(event) {
var eventId = event.target.id;
ajaxCall(eventId);
$("#" + eventId).unbind("click", handler);;
});
此结合到所有的文本框,但没有绑定到特定的文本框中。此外,根据您使用的gridview类型,某些第三方网格like jQuery Grid允许您将JSON对象绑定到它们。
它绑定到一个jQuery网格
$.post('url', { id: "value" },
function (returnedData) {
console.log(returnedData);
var source =
{
datatype: "json",
datafields: [
{ name: 'CompanyName' },
{ name: 'ContactName' },
{ name: 'ContactTitle' },
{ name: 'Address' },
{ name: 'City' },
{ name: 'Country' }
],
localdata: data
};
var dataAdapter = new $.jqx.dataAdapter(returnedData);
$("#jqxgrid").jqxGrid(
{
source: dataAdapter,
columns:
[
{ text: 'Company Name', datafield: 'CompanyName', width: 250 },
{ text: 'Contact Name', datafield: 'ContactName', width: 150 },
{ text: 'Contact Title', datafield: 'ContactTitle', width: 180 },
{ text: 'City', datafield: 'City', width: 120 },
{ text: 'Postal Code', datafield: 'PostalCode', width: 90 },
{ text: 'Country', datafield: 'Country', width: 100 }
]
});
});
嗨,Ajax调用对我来说不可行,因为我在这个gridview下的更新面板中有两个gridview(不是在后面的代码中创建的) 。使用Ajax意味着使用静态webmethods,并使该方法填充gridview方式太复杂。我也会保留你的方法作为选项,但我正在寻找更简单的方法 – nitinvertigo 2014-08-28 14:02:21
你应该以某种方式记住,文本框被点击 – 2014-08-28 12:56:06
什么是侧板的用途样品。它是什么更新。此外,为什么需要在单击文本框时发生此更新。 – PaulBinder 2014-08-28 13:03:14
@PaulBinder当点击文本框时,还有2个gridview填充。在点击文本框时传递一个id,在两个gridviews中填充详细信息 – nitinvertigo 2014-08-28 13:06:59