#javascript #asp.net #vb.net #twitter-bootstrap
#JavaScript #asp.net #vb.net #twitter-bootstrap
Вопрос:
Я разрабатываю тестовый модал, который в конечном итоге будет использоваться в каталоге контактов. При нажатии на кнопку переменная (адрес электронной почты) будет передана в подраздел GetSpecificAccount в объекте AccountsDB. В тестовом режиме я жестко запрограммировал адрес электронной почты, который нужно передать, чтобы упростить его; однако, когда я нажимаю на кнопку, содержимое не загружается.
<center><asp:Button ID="btnTestButton" CssClass="btn btn-primary" runat="server" OnClick="UpdateModal" OnClientClick="ShowModal(); return false" Text="Test Modal" /></center>
</div>
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">amp;times;</button>
<h3><asp:Label runat="server" ID="lblName" Text="Name Placeholder" /></h3>
</div>
<div class="modal-body">
<p><b>Name: </b>amp;nbsp<asp:Label runat="server" ID="lblName2" Text="Name Placeholder" /></p>
<p><b>Email: </b>amp;nbsp<asp:Label runat="server" ID="lblEmail" Text="Email Placeholder" /></p>
<p><b>Info: </b>amp;nbsp<asp:Label runat="server" ID="lblInfo" Text="Info Placeholder" /></p>
</div>
<div class="modal-footer">
<asp:HyperLink runat="server" cssclass="btn btn-primary" URL="">Contact</asp:HyperLink>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script>
function ShowModal() {
$(document).ready(function () {
$('#myModal').modal('show');
});
}
</script>
Protected Sub UpdateModal()
AccountsDB.GetSpecificAccount("test@test.com")
lblName.Text = AccountsDB.AccountsDataset.Tables("Accounts").Rows(0).Item("FirstName").ToString
lblEmail.Text = AccountsDB.AccountsDataset.Tables("Accounts").Rows(0).Item("email").ToString
lblName2.Text = AccountsDB.AccountsDataset.Tables("Accounts").Rows(0).Item("FirstName").ToString amp; " " amp; AccountsDB.AccountsDataset.Tables("Accounts").Rows(0).Item("LastName").ToString
lblInfo.Text = "Test info hardcode"
End Sub
Комментарии:
1. Вы выполняете полную обратную передачу. Если вы хотите частично обновить свою страницу (при нажатии кнопки обновить только модальный div), вам нужно реализовать какой-то ajax: например, an
UpdatePanel
.
Ответ №1:
Когда вы нажимаете на кнопку, данные не отправляются на сервер (потому что ‘return false;’).
Комментарии:
1. Когда я извлекаю «return false», модальная загрузка данных корректно, но автоматически закрывается в течение нескольких секунд
2. потому что после завершения функции JavaScript ваша страница перезагружается. Вам нужно включить свой div в панель обновления, вынуть OnClientClick on button. На стороне сервера в Sub UpdateModal() вызовите js-функцию следующим образом: ScriptManager. RegisterStartupScript(me, GetType(String), «ShowPanel», «ShowModal();», True)
3. Как вы реализуете панель обновления, я не использовал ее в прошлом
4. <asp:UpdatePanel runat=»server»> <ContentTemplate><div id=’myModal’/> .. </ContentTemplate></asp:UpdatePanel>
5. Я подозреваю, что у меня возникли некоторые проблемы со ScriptManager. Строка RegisterStartupScript. Я получаю синтаксическую ошибку в Visual Studio, в которой указано, что System.Web.UI.IScriptManager недоступен в этом контексте, потому что он «друг». Я также вставил элемент управления <asp:ScriptManager runat=»server» /> в aspx-файл