Я хотел бы, чтобы пользователь добавил новую запись в базу данных и открыл диалоговое окно JQuery, подтверждающее, что новая запись была сохранена. Я думал, что это будет простое упражнение. У меня есть привязка сетки к LINQDataSource, чтобы пользователь мог просматривать и редактировать существующие записи, а также текстовое поле и кнопку для добавления новых кодов.
В заголовке документа у меня есть следующее:
$('#dialog').dialog({
autoOpen: false,
width: 400,
buttons: {
"Ok": function () {
$(this).dialog("close");
}
}
});
и дальше в разметке у меня есть:
<div id="dialog" title="New Code Added">
<p>"<asp:Literal runat="server" ID="LiteralNewCode"></asp:Literal>" was successfully added.</p>
</div>
Таким образом, когда пользователь вводит новое описание и проходит все проверки, он добавляется в базу данных, и просмотр сетки восстанавливается для отображения новой записи.
protected void ButtonSave_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
CCRCode.Add( <long list of paramters> );
GridCode.DataBind();
IsNewCode = true;
NewDescription = <new description saved to database>;
}
}
Теперь вот где (я думал) я бы установил логическое свойство, чтобы указать, что было добавлено новое описание, а также текст нового описания. Смотрите ниже:
protected bool IsNewCode
{
get { return ViewState["IsNewCode"] != null ? (bool)ViewState["IsNewCode"] : false; }
set { ViewState["IsNewCode"] = value; }
}
private string NewDescription
{
get { return ViewState["NewDescription"] != null ? ViewState["NewDescription"].ToString() : string.Empty; }
set { ViewState["NewDescription"] = value; }
}
Здесь я заблудился. Я думаю, я хочу добавить функциональность, чтобы включить код, похожий на:
$('#dialog').dialog('open');
Я добавил метод registerscriptblock в событие page_load, но это не сработало. Есть идеи? Или я просто ошибаюсь?
Спасибо.