gpt4 book ai didi

c# - JSON 变量未在回发时更新

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:37 25 4
gpt4 key购买 nike

我有一个表单来编辑数据库值。我在页面加载时使用 ClientScriptManager.RegisterClientScriptBlock 注册了一个 json 变量,然后使用它来检查表单的更改并提示用户保存。在保存按钮单击事件中,我然后重新执行注册 json 变量的代码,以便它包含用户刚刚保存的更改。

我遇到的问题是 json 变量没有更新以反射(reflect)回发后对表单的更改。只有在刷新页面后,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());
}

我正在尝试做的事情是否可行?

最佳答案

试一试

protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
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);
PopulateForm(p);
}

它在您创建 json 之后执行 PopulateForm(p),并且在 Page_Load 中它仅在不是回发

关于c# - JSON 变量未在回发时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com