【发布时间】:2010-07-13 03:26:56
【问题描述】:
ASP.NET 3.5 SP 1 / Visual Studio 2008 V 9.x RTM
我试图让更新面板内的中继器内的按钮触发。 我不会。我尝试在 ContentTemplate 外部和内部添加触发器 UpdatePanel 无济于事:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnAddStatus" EventName="Click" />
</Triggers>
事实上,AsyncPostBackTrigger 的 ControlID 始终是红色的,并告诉我“无法解析符号”。无论我在页面的哪个位置放置触发器,情况似乎都是如此。
我已阅读通过将按钮放在外面来解决此问题的帖子 UpdatePanel,但从图形上讲,该按钮将不在 正确的位置。它需要是具有 btnDiv ID 的 DIV。
那么...如何让下面的按钮触发?
<asp:Button ID="BtnAddStatus" CssClass="small button Detail" Text="Share" runat="server" />
ASPX代码如下:
<asp:Content ContentPlaceHolderID="ContentCenter" runat="server">
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:Label ID="lblMessage" runat="server"></asp:Label>
<asp:Repeater ID="repFilter" runat="server"
onitemcommand="RepFilterItemCommand">
<HeaderTemplate>
<div class="UIComposer_Box">
<span class="w">
<asp:TextBox class="input" ID="txtStatusUpdate" TextMode="MultiLine" Columns="60"
name="txtStatusUpdate" Style="overflow: hidden; height: 40px; color: rgb(51, 51, 51);"
runat="server"></asp:TextBox>
</span>
<br clear="all">
<div id="btnDiv" style="padding: 10px 5px; height: 30px;" align="left">
<span style="float: left;"> PHP, Codeigniter, JQuery, AJAX Programming +
Tutorials ( <a href="http://www.x.info" target="_blank" style="color: rgb(236, 9, 43);">
www.x.info</a> ) </span>
<asp:Button ID="BtnAddStatus" CssClass="small button Detail" Text="Share" runat="server" />
</div>
</div>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" Text='<%# ((Alert)Container.DataItem).Message %>' runat="server"></asp:Label>
</ItemTemplate>
<FooterTemplate>
<br class="clear" />
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
和我的页面加载代码:
protected void Page_Load(object sender, EventArgs e)
{
_presenter = new DefaultPresenter();
_presenter.Init(this);
}
和 BtnStatusClick 方法:
protected void BtnAddStatusClick(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var su = new StatusUpdate
{
CreateDate = DateTime.Now,
AccountId = _userSession.CurrentUser.AccountId,
Status = "" //txtStatusUpdate.Text
};
_statusRepository.SaveStatusUpdate(su);
_alertService.AddStatusUpdateAlert(su);
_presenter = new DefaultPresenter();
_presenter.Init(this);
}
}
再次感谢。
【问题讨论】:
-
嗯...没有其他回应?还有什么我可以补充或澄清的吗?
-
它是“视图”——基本上是连接前端显示的方法。它的内容显示状态更新如下: _view.ShowAlerts(_alertService.GetAlertsByAccountId(_userSession.CurrentUser.AccountId));我认为我的问题与此无关,但我愿意在这一点上探索任何事情......
标签: ajax button updatepanel repeater