C# Javascript在UpdatePanel附近不起作用
我有一个C# Javascript在UpdatePanel附近不起作用,c#,javascript,asp.net,button,updatepanel,C#,Javascript,Asp.net,Button,Updatepanel,我有一个UpdatePanel: <asp:TextBox ID="date" runat="server" /> <asp:ScriptManager ID="Manager" runat="server" /> <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
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" /> <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>
您可以看到,第一个
按钮
被禁用,在更新面板
触发后,它将被启用;现在我希望如果date
的文本更改按钮
变为禁用。我测试了我的JS,但它没有在ASPX中禁用按钮 回发后,清除控件的绑定。这就是原因
试试这个
<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>
<asp:Label ID="checkRes" runat="server" /> <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>
函数pageLoaded()
{
var textBox=document.getElementById(“”);
var submitButton=document.getElementById(“”);
textBox.onchange=函数()
{
submitButton.disabled=真;
};
}
var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.添加页面加载(页面加载);
您可以对其进行更改,但脚本块必须放在scriptmanager之后。可能的副本
<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>
<asp:Label ID="checkRes" runat="server" /> <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>