2016-04-06 3 views
1

У меня есть пользовательский элемент управления, который mut действует как модальный - поэтому этот веб-элемент управления всплывает как модальный, но событие clickbutton click не запускается. - При нажатии кнопки ссылки в модальном (веб-пользовательском управлении) он просто закрывает модальный поп.Asp.net пользовательский контроль как bootstrap modal

код, который открывает модальное всплывающее окно в странице (отлично работает):

protected void lbChatMessage_Click(object sender, EventArgs e) 
{   
    Control row = LoadControl("~/uc/page_chat_message.ascx"); 
    ((uc.page_chat_message)row).ID = "MessagePlugin";    
    phChatMessage.Controls.Add(row); 
    ScriptManager.RegisterStartupScript(this, GetType(), "ChatModalScript", "$('#chat').modal('show');", true); 
} 

Кнопка ссылку нажмите на (управления веб-пользователя) модальный - это не работает - Я также положить, что AJAX UpdatePanel в usercontrol:

<div class="col-xs-6 text-right">          
    <asp:LinkButton ID="ButtonSendMessage" CssClass="btn bg-teal-400 btn-labeled btn-labeled-right" runat="server" onclick="ButtonSendMessage_Click"> 
     <b> <i class="icon-circle-right2"> </i> </b> 
     Send 
    </asp:LinkButton> 
</div> 

на стороне сервера управления веб-пользователя:

protected void ButtonSendMessage_Click(object sender, EventArgs e) 
{ 

} 

Это событие кнопки не срабатывает

Что я делаю неправильно, так как эта ссылка linkmutget не работает?

ответ

1

Способ добавления пользовательского элемента управления не добавляет элемент управления в ViewState страницы.

Что происходит:

ButtonSendMessage_Click запускает post_back обратно на сервер, но сервер не имеет никакого отношения к этому элементу управления в ViewState страницы, так, чтобы событие не зарегистрировано.

Что вам нужно сделать:

Вместо добавления контроля в lbChatMessage_Click случае, вы должны иметь контроль уже добавил на свою страницу, но скрыты. Затем используйте Javascript только для того, чтобы показать, что всплывающее окно при нажатии кнопки вместо выполнения обратной передачи. Таким образом, ваш модальный зарегистрирован в ViewState, а затем загорится ButtonSendMessage_Click.

+0

Я вносил изменения, как вы предлагали, и теперь событие нажатия кнопки запускается. СПАСИБО ... Единственная проблема, с которой я сейчас сталкиваюсь, - когда событие кнопки SendMessage выполняется, модальная форма (пользовательский контроль) просто исчезает (и оставляет экран в режиме просмотра состояния модального состояния (без отображения модальной формы)) ЛЮБАЯ идея, что это? –

+0

Да, потому что SendMessage выполняет полную обратную передачу, которая перерисовывает страницу. Вы можете явно сделать модальный вид в методе SendMessage, чтобы обойти это. Пожалуйста, отметьте как ответ, если вы удовлетворены моими ответами. – chadiusvt

+0

Да, вы прав, почтовый ответ страницы является проблемой. Большое спасибо за вашу помощь. –

Смежные вопросы