Мой javascript:
/* Modal */
function DefaultModal() {
$(".ModalBox").dialog("open");
}
$(function () {
// Modal.
$(".ModalBox").dialog({
autoOpen: false,
height: 410,
resizable: false,
draggable: false,
width: 602,
modal: true,
open: function (type, data) {
// include modal into form
$(this).parent().appendTo($("form:first"));
},
buttons: {
"Confirm": function () {
}
},
close: function () {
//clear all text.
$(this).find(':text').val('');
}
});
});
У меня есть два способа вызвать мой модал:
Этот работает безупречно:
<li><a href="javascript:void(0)" onclick="DefaultModal();">ADD contact</a></li>
и этотнет Мне нужна одна кнопка, которая редактирует из моей временной таблицы, в мой модал.
<asp:GridView ID="gvContato" runat="server" AutoGenerateColumns="False" OnRowCommand="RunComm"
DataKeyNames="IDCliente" AllowPaging="True" PageSize="10" Width="600px">
<Columns>
<asp:BoundField DataField="IDCliente" Visible="false" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
<asp:BoundField DataField="Email" HeaderText="E-mail" SortExpression="Email" />
<asp:ButtonField ButtonType="Button" CommandName="Edit" Text="Edit">
<ItemStyle HorizontalAlign="Center" />
</asp:ButtonField>
</Columns>
</asp:GridView>
protected void RunComm(object sender, GridViewCommandEventArgs e)
{
int IDSelecionado = (int)gvContato.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0];
switch (e.CommandName)
{
case "Edit":
if (IDSelecionado > 0)
{
ScriptManager.RegisterClientScriptBlock(this.upModalContato, this.upModalContato.GetType(), "Modal", "DefaultModal();", true);
}
break;
}
}
Моя кнопка редактирования делает это:
оноткрывает мой диалог, но также показывает его в моем теле (не только как модальный, но и как DIV ниже моего вида сетки).Кроме того, если я продолжаю открывать и закрывать свой диалог (используя кнопку редактирования) без сохранения информации, он продолжает создавать запятые во всех моих текстовых полях;Например, когда вы делаете массив в javascript.
Я не знаю почему!?
Есть идеи?Я не уверен, сделал ли я себя понятным здесь, если нет, скажите мне, что я скучаю.
Спасибо, С уважением.
РЕДАКТИРОВАТЬ:
PS:Я использую UpdatePanel!
EDIT2: TYPO
EDIT3: Почему я это делаю?
Моя цель:
- Загрузить один gridviewс данными из моей базы данных (реальные данные).
- вставьте в эту сетку временные данные, сохраненные из моих модальных (временных данных).
- Исключите / отредактируйте (в модальных), навсегда, мои временные данные.Отредактируйте (в модальном режиме) временно мои реальные данные.
после всех изменений сохранили окончательные данные (временные и действительные данные) в моей базе данных.
для достижения этой цели,Я сохраняю свои данные в моем состоянии просмотра (я знаю, отстой, но у меня нет идей)
После решения @ NerdFury я сделал это: (Это до сих пор неработать, как мне нужно! он открывает модальные, но не загружает данные в полях. этот код также откройте мою таблицу (модальную) в моем HTML-теле, с данными.)
CSharp:
protected void btnEditModal_Click(object sender, EventArgs e)
{
this.ddlDepartamentoContato.SelectedIndex = 1;
this.ddlCargoContato.SelectedIndex = 2;
this.ckAprovadorContato.Checked = true;
}
html:
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEditModal" runat="server" Text="Edit" OnClientClick="DefaultModal();" CausesValidation="false" OnClick="btnEditModal_Click" />
</ItemTemplate>
</asp:TemplateField>
Но у меня все еще проблема с модалом, открывается диалоговое окно, но на экране также появляется таблица.Я использовал некоторые статические данные в событии кнопки, чтобы посмотреть, работает ли он, и он загрузил эти данные в таблицу, но не в модал.
PS: Я понял (я верю, по крайней мере), чтопроблема.
asp: UpdatePanel
ЕСЛИ я удаляю его из своего кода, я загружаю данные, и все работает безупречно, НО делает обратную передачу, имой модал почти не появляется!Он просто "моргает" на моем экране.
Посмотрите на мой фактический код:
<asp:UpdatePanel ID="upModalContact" runat="server">
<ContentTemplate>
<table>
<tr>
<td>
<ul id="contatoModalButtonList">
<li><a href="javascript:void(0)" onclick="DefaultModal();">Add contact</a></li>
</ul>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="gvContact" runat="server" AutoGenerateColumns="False" OnPageIndexChanging="gvContact_PageIndexChanging"
DataKeyNames="IDCliente" AllowPaging="True" PageSize="10" Width="600px">
<Columns>
<asp:BoundField DataField="IDClient" Visible="false" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" />
<asp:BoundField DataField="Email" HeaderText="E-mail" SortExpression="Email" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEditContactmodal" runat="server" Text="Edit" CausesValidation="false" OnClick="btnEditModal_Click" OnClientClick="DefaultModal();" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
И
<table class="ModalBox" title="Contact">
<tr>
<td colspan="2">
<p class="validateTips"> Fields required (*).</p>
</td>
</tr>
<tr>
<td align="left" width="130px">
<asp:Label Text="Name:" runat="server" ID="lblNameContact" />
</td>
<td>
<asp:TextBox runat="server" ID="txtNameContact" CssClass="classNameContact" Width="400px" MaxLength="50" /> <label>*</label>
</td>
</tr></table>