【发布时间】:2016-09-20 10:08:12
【问题描述】:
我有这个 AJAX 按钮,我想更新一些 CSS。问题是我希望它更新的控件位于不同的文件中,并且无法从该文件中移出。
这是我要更新其 CSS 的面板,位于 Site.master 文件中:
<asp:ScriptManager ID="ScriptManager" runat="server" />
<asp:UpdatePanel ID="Panel2" runat="server" updatemode="Always">
<ContentTemplate>
<div id="updateThis" runat="server"><p>Test text</p></div>
</ContentTemplate>
</asp:UpdatePanel>
这是位于 Items.ascx 文件中的按钮:
<asp:UpdateProgress runat="server" ID="PageUpdateProgress">
<ProgressTemplate>
<img class="ajax-loader" src="/Images/ajax-loader.gif" alt="Loading..." />
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="Panel3" runat="server" updatemode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateButton" eventname="Click" />
</Triggers>
<ContentTemplate>
<asp:Button runat="server" OnClick="UpdateButton"
OnClientClick="hideButton()" Text="Update"
class="update" ID="UpdateButton" name="UpdateButton"
type="submit" ></asp:Button>
</ContentTemplate>
</asp:UpdatePanel>
这是 Items.ascx.cs 方法,即 UpdateButton
protected void UpdateButton(object sender, EventArgs e)
{
var masterPage = this.Page.Master;
var updatePanel = masterPage.FindControl("Panel2");
var div = (HtmlGenericControl)updatePanel.Controls[0].FindControl("updateThis");
div.Style.Add("color", "#ff0000");
}
当我单击按钮时,它最终无法正常工作。到目前为止,使用 AJAX UpdateProgress 模板,它会显示正在加载的 GIF,然后 GIF 消失并且文本永远不会改变颜色。
编辑
希望这能让您更好地了解哪里出了问题:
这行得通
protected void UpdateButton(object sender, EventArgs e)
{
var masterPage = this.Page.Master;
var updatePanel = masterPage.FindControl("Panel2");
var div = (HtmlGenericControl)updatePanel.FindControl("updateThis");
div.Style.Add("color", "#ff0000");
UpdateButton.Text = "Done!";
}
我在 FindControl() 方法中有 #updateThis。不要像我一样!
【问题讨论】: