gpt4 book ai didi

c# - Javascript 在 UpdatePanel 附近不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:17 24 4
gpt4 key购买 nike

我有这个 UpdatePanel:

<asp:TextBox ID="date" runat="server" />

<asp:ScriptManager ID="Manager" runat="server" />
<asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" />

<asp:ImageButton ID="check" runat="server" ImageUrl="../img/process.png" OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false"/>

<asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" />

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate">
<ProgressTemplate>

<asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>

<Triggers>
<asp:AsyncPostBackTrigger ControlID="check" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<script type="text/javascript">
var textBox = document.getElementById('<% =date.ClientID %>');
var submitButton = document.getElementById('<% =submit.ClientID %>');
textBox.onchange = function () {
submitButton.disabled = true;
};
</script>

后面有这段代码:

 protected void check_Click(object sender, EventArgs e)
{
submit.Enabled=true;
}

您可以看到第一个 Button 被禁用,在 UpdatePanel 触发后它将被启用;现在我想要如果 date 的文本更改 Button 变为禁用。我测试了我的 JS here但它不会禁用 ASPX 中的 Button

最佳答案

回发后,清除与控件的绑定(bind)。这就是原因。

试试这个,

<asp:TextBox ID="date" runat="server" />
<asp:ScriptManager ID="Manager" runat="server" />
<script type="text/javascript">
function pageLoaded()
{
var textBox = document.getElementById( '<% =date.ClientID %>' );
var submitButton = document.getElementById( '<% =submit.ClientID %>' );
textBox.onchange = function ()
{
submitButton.disabled = true;
};
}


var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded( pageLoaded );
</script>
<asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
&nbsp;<asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" /><br />
<asp:ImageButton ID="check" runat="server" ImageUrl="http://static.adzerk.net/Advertisers/d18eea9d28f3490b8dcbfa9e38f8336e.jpg"
OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false" />
<br />
<asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" />

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate">
<ProgressTemplate>
<asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="check" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

你可以改变它,但脚本 block 必须放在scriptmanager之后。

关于c# - Javascript 在 UpdatePanel 附近不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18290610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com