Как отобразить значение в диалоге SimpleModal?
Мой вопрос действительно прост. У меня есть кнопка asp.net. Я могу использовать его для вызова simpleModal и отображения диалогового окна. Теперь я добавил элемент управления меткой в диалоговом окне и хотел бы, чтобы эта метка отображала какое-то значение. Что я должен делать?
Вот мои коды
$('#<%= btnOpen.ClientID %>').click(function(e) {
e.preventDefault();
$('#content').modal({
onOpen: function(dialog) {
dialog.overlay.fadeIn('slow', function() {
dialog.data.hide();
dialog.container.fadeIn('slow', function() {
dialog.data.slideDown('slow');
});
});
},
onClose: function(dialog) {
dialog.data.fadeOut('slow', function() {
dialog.container.slideUp('slow', function() {
dialog.overlay.fadeOut('slow', function() {
$.modal.close(); // must call this!
});
});
});
}
});
e.preventDefault();
// return false;
});
<asp:Button ID="btnOpen" runat="server" Text="ASP.NET Open"/>
<div id="content" style="display: none;">
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
3 ответа
Полагаю, поскольку вы сказали, что ваш вопрос прост, вы просто не знакомы с jQuery. Вы можете положить это в свой click
функция или в $(document).ready
функция, в зависимости от ваших полных требований:
var yourValue = ; // put your function or value here
$('#Label1').text(yourValue);
Примечание: вам нужно будет использовать .html
вместо .text
если у вас есть строка с тегами, но .text
быстрее.
Lol, я отвечаю на свой вопрос снова, но я буду благодарен mNVhr tho.
Я наконец получил всю эту работу. Уловка для кнопки asp.net для запуска обратной передачи, наряду с обратной передачей javascript, заключается в том, чтобы поместить кнопку asp.net в панель обновления. Вот код, который у меня есть
Для части JavaScript:
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="js/jquery.simplemodal-1.3.5.js" type="text/javascript"></script>
<script type="text/javascript">
function myOpen() {
$('#content').modal({
onOpen: function(dialog) {
dialog.overlay.fadeIn('slow', function() {
dialog.data.hide();
dialog.container.fadeIn('slow', function() {
dialog.data.slideDown('slow');
});
});
},
onClose: function(dialog) {
dialog.data.fadeOut('slow', function() {
dialog.container.slideUp('slow', function() {
dialog.overlay.fadeOut('slow', function() {
$.modal.close();
});
});
});
}
});
}
function myClose() {
$.modal.close();
}
</script>
Для разметки HTML
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btnOpen" runat="server" Text="Open" OnClick="btnOpen_Click" OnClientClick="myOpen();" />
</ContentTemplate>
</asp:UpdatePanel>
<div id='content' style="display: none">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
<input id="Button2" type="button" value="Close" onclick="myClose();" />
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
Для кода:
protected void Page_Load(object sender, EventArgs e)
{
}
private void CloseDialog()
{
string script = string.Format(@"myClose()");
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true);
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "1")
CloseDialog();
else
Label2.Text = TextBox1.Text;
}
protected void btnOpen_Click(object sender, EventArgs e)
{
TextBox1.Text = DateTime.Now.ToString();
UpdatePanel1.Update();
}
Я надеюсь, что этот крошечный код поможет тем разработчикам asp.net, которые хотят использовать хороший jQuery в своих проектах.
Как видите, из приведенных выше кодов.
Когда я нажимаю на кнопку btnOpen, запускаются два постбэка. Один из них - из кода asp.net, который назначает текущую дату и время элементу управления textbox внутри модального диалога. Второй постбэк от javascript, который открывает модальное диалоговое окно. Кнопка asp.net должна быть внутри панели обновления. В противном случае модальное диалоговое окно останется на 0,5 секунды.
Когда я нажимаю на btnSave внутри модального диалога. Обратная передача также произошла. У меня есть немного логики здесь. Когда значение текстового поля равно 1, я вызываю функцию closeDialog(). Если значением являются другие числа, модальное диалоговое окно остается открытым, и элемент управления меткой внутри диалогового окна будет отображать число из текстового поля.
jQuery хорош, но как разработчик.Net он просто новый, и иногда мне трудно его понять, особенно из-за конфликта обратных передач между javascript и.net.
Я надеюсь, что этот ответ полезен.