2

データベースの値を編集するフォームがあります。ClientScriptManager.RegisterClientScriptBlockページの読み込み時に使用して json 変数を登録し、それを使用してフォームの変更を確認し、ユーザーに保存を促します。保存ボタンのクリック イベントで、json 変数を登録するコードを再実行して、ユーザーが保存したばかりの変更が含まれるようにします。

私が遭遇した問題は、ポストバック後のフォームへの変更を反映するためにjson変数が更新されていないことです。ページを更新した後にのみ、json 変数が更新されます。

protected void Page_Load(object sender, EventArgs e)
{
    Property p = Property.GetPropertyById(id);
    PopulateForm(p);
    CreateJson(p);
}

protected void btnSave_Click(object sender, EventArgs e)
{
    Property p = Property.GetPropertyById(id);
    p.Price = txtPrice.Text.Trim();

    p.Save();
    CreateJson(p);
}

private void CreateJson(Property p)
{
    StringBuilder JSONtext = new StringBuilder();
    JSONtext.Append("<script type='text/javascript'>");
    JSONtext.Append("var property = ");
    JSONtext.Append("{");
    JSONtext.Append("\"price\":\"");
    JSONtext.Append(p.Price.ToString());
    JSONtext.Append("};");
    JSONtext.Append("</script>");

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jsonVariable", JSONtext.ToString());
}

私がやろうとしていることは可能ですか?

4

1 に答える 1