我正在寻找一种使用jQuery单击<asp:LinkButton>
的方法。我也使用了<asp:ModalPopupExtender>
,带有“是/否”选项,因此如果用户点击“是”,则会触发javascript函数OnOk()
,该函数必须单击页面上的“保存”按钮,但它现在没有做任何事情,只是显示警告框:
ASP.NET AJAX
<asp:LinkButton ID="butSaveAssociation" runat="server" OnClientClick="SaveAssociation();" Text="btnSave" />
<asp:ModalPopupExtender BehaviorID="confirmPopup" ID="confirmPopup" runat="server" TargetControlID="butTest"
PopupControlID="ConfirmView" OnOkScript="OnOk();" OnCancelScript="$find('confirmPopup').hide(); return false;" OkControlID="yesButton" CancelControlID="noButton" />
<asp:Panel ID="ConfirmView" runat="server" CssClass="modalPopup" Style="display:none; height:150px; width:250px;">
<center><div>
<table style="margin-left:auto; margin-right:auto;">
<tr>
<td colspan="4" align="left" style="padding-left: 75px; padding-top: 10px;">
Are you sure you want to save the changes?
</td>
</tr>
<br /><br />
<tr>
<td align="left" colspan="1">
<asp:LinkButton ID="yesButton" runat="server" CausesValidation="false" CssClass="YesNoButton" BorderStyle="none" Text="YES">
</asp:LinkButton>
</td>
<td align="right" colspan="1">
<asp:LinkButton ID="noButton" runat="server" CausesValidation="false" CssClass="YesNoButton" BorderStyle="none" Text="NO">
</asp:LinkButton>
</td>
</tr>
</table>
</div></center>
</asp:Panel>
JAVASCRIPT W / JQUERY
<script src="~/Scripts/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
function OnOk() {
ClickSaveButton();
}
function ClickSaveButton() {
$('#<%=butSaveAssociation.ClientID %>').click() // not working...
alert('save button clicked.');
}
</script>
修改
'SaveAssociation()'函数只是更改一个标志,因此它不执行实际的保存:
<script type="text/javascript">
function SaveAssociation() {
setDirty(false);
}
function setDirty(changeVal) {
$("#IsDirty").val(changeVal);
}
</script>
<input type="hidden" id="IsDirty" value="" />
此功能只是检查页面上是否有更改,如果有更改,“IsDirty”隐藏字段将设置为true。如果用户单击“确定”以保存更改,我需要调用处理'butSaveAssociation.Click'的VB处理程序,如回发。
答案 0 :(得分:2)
为什么不直接调用SaveAssociation()?
答案 1 :(得分:1)
在这种情况下,我会像Joe提到的那样调用Save Association。但是,为了将来参考,以下选择器应该会给您带来更好的结果。
$('[id$=butSaveAssociation]').click();
如果您没有使用母版页,Neals select也会有效,但我认为您是在尝试获取ClientID。
答案 2 :(得分:0)
试试这个:
function ClickSaveButton() {
$('#butSaveAssociation').trigger('click');
alert('save button clicked.');
}
答案 3 :(得分:0)
我遇到了类似的问题,我已经解决了以下问题:
function clickButton(element)
{
if (element !=null)
{
if (element.click)
{
//IE only
element.click();
}
else
{
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
element.dispatchEvent(evt);
}
}
else
{
//oops..
}
}
这样称呼:
clickButton(document.getElementById('<%=butSaveAssociation.ClientID%>'));
我不知道为什么jquery不起作用。
这看起来应该很好,但对我来说也不起作用:
$('#<%=butSaveAssociation.ClientID %>').click();
它可能与宇宙辐射或潮汐有关。; - )