场景是这样的:我有一个asp.net GridView控件和一个保存按钮。最初我在页面加载时禁用了保存按钮。我想在gridview中的任何下拉列表更改时启用保存按钮。它一直工作到现在为止。
我有一个javascript函数可以向用户询问是否要继续保存,但是此函数没有通过保存按钮触发。
如果我从下拉列表中删除该功能以启用保存按钮,则保存按钮会调用onclientclick功能。否则,它没有。
以下是代码。
<script type="text/javascript">
function Confirm() {
if (confirm("Are you sure," + " you want to assign the respective factories ?") == true)
return true;
else
return false;
}
function Success() {
alert('Data has been saved successfully.');
}
function EnableSave() {
$('#btnSave').prop("disabled", false);
}
}
</script>
<asp:GridView ID="gvReceiptTrans"
runat="server"
AutoGenerateColumns="false"
CssClass="mGrid"
PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt"
OnRowDataBound="grid_RowDataBound"
EmptyDataText="No Data Available">
<Columns>
<asp:BoundField HeaderText="RAN" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" DataField="receipt_ack_nbr" />
<asp:BoundField HeaderText="IPN" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="item_id" />
<asp:BoundField HeaderText="PO" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="po_nbr" />
<asp:BoundField HeaderText="PO Line" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" DataField="po_line_nbr" />
<asp:BoundField HeaderText="Supplier" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Center" DataField="supplier" />
<asp:BoundField HeaderText="Model" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" DataField="model" />
<asp:BoundField HeaderText="Description" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Center" DataField="description" />
<asp:BoundField HeaderText="Qty Delivered" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="110px" ItemStyle-HorizontalAlign="Center" DataField="qty" />
<asp:TemplateField HeaderText="Factory" HeaderStyle-CssClass="mGridHeaderStyle" ItemStyle-Width="120px">
<ItemTemplate>
<asp:DropDownList ID="ddlFactory" runat="server" Width="120px" onchange="return EnableSave();" CssClass="items" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="btnSave" runat="server" Text="Save" Width="120px" Height="30px" OnClientClick="return Confirm();" OnClick="btnSave_Click" />
要求是先点击保存按钮调用onclientclick()函数,然后再进行主点击事件。
我该如何解决这个问题?
答案 0 :(得分:2)
更改您的Confirm
方法如下,
function Confirm() {
return confirm("Are you sure," + " you want to assign the respective factories ?");
}
答案 1 :(得分:1)
试试这个
<asp:Button ID="btnSave" runat="server" Text="Save" Width="120px" Height="30px" OnClientClick="return confirm('Are you certain you want to delete this
product?');" OnClick="btnSave_Click" />
使用此jquery代码。它工作正常
<asp:DropDownList ID="ddlFactory" runat="server" Width="120px" CssClass="items" DataSourceID="SqlDataSource1"/>
和你的jquery
<script type="text/javascript">
$(document).ready(function () {
$('.items').on('change', function () {
alert('change');
});
});
</script>
答案 2 :(得分:0)
正如您提到的要求,我已经在最后测试了您的代码。它工作正常。 “onclientclick”正在向我招手。你可以发布完整的aspx代码,以便我们可以看到。
由于
答案 3 :(得分:0)
尝试这个,
OnClientClick="return confirm();"
答案 4 :(得分:0)
我认为你应该在javascript函数中调用服务器端事件..
供您参考......
http://forums.asp.net/t/1794512.aspx?Call+Server+Side+Event+From+JavaScript