Кнопка ASP.NET внутри повторителя внутри панели обновления не сработает! - PullRequest
1 голос
/ 13 июля 2010

ASP.NET 3.5 SP 1 / Visual Studio 2008 V 9.x RTM

Я пытаюсь запустить кнопку внутри ретранслятора внутри панели обновления. Я не буду Я попытался добавить триггер за пределами ContentTemplate и внутри UpdatePanel безрезультатно:

 <Triggers>  
        <asp:AsyncPostBackTrigger ControlID="BtnAddStatus" EventName="Click" />  
    </Triggers> 

На самом деле ControlID AsyncPostBackTrigger всегда красный и говорит мне: «Не удается разрешить символ». Это, кажется, имеет место независимо от того, где на странице я поставил триггер.

Я прочитал сообщения, которые решили эту проблему, поместив кнопку снаружи UpdatePanel, но тогда, графически говоря, кнопка не будет в правильное место. Это должен быть DIV с идентификатором btnDiv.

Итак ... как мне запустить приведенную ниже кнопку?

<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;">&nbsp;PHP, Codeigniter, JQuery, AJAX Programming + 
                            Tutorials ( <a href="http://www.x.info" target="_blank" style="color: rgb(236, 9, 43);">
                                    www.x.info</a> )&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; </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);


            }

        }

Еще раз спасибо.

1 Ответ

0 голосов
/ 13 июля 2010

Вы пытались установить событие нажатия на кнопку вместо того, чтобы обрабатывать его из кода позади?

<asp:Button OnClick="BtnAddStatusClick" ID="BtnAddStatus" CssClass="small button Detail" Text="Share" runat="server" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...