gpt4 book ai didi

asp.net - 为什么我提交时我的文本框无法识别值已更改?

转载 作者:行者123 更新时间:2023-12-02 17:21:15 25 4
gpt4 key购买 nike

当我的页面加载时,它会查询数据库中的某些值并用它们填充一些文本框:

protected void Page_Load(object sender, EventArgs e)
{
tadbDataContext tadb = new tadbDataContext();
Dictionary<string, string> hexColors = tadb.msp_silentAuctionColors.ToDictionary(t => t.colorDescription, t => t.colorValue);

tbTextColor.Text = hexColors["textColor"];
tbAltColor.Text = hexColors["altColor"];
tbBackgroundColor.Text = hexColors["backgroundColor"];
}

然后,我更改该值并尝试通过单击执行以下操作的按钮重新提交到数据库:

using (tadbDataContext tadb = new tadbDataContext())
{
var textColor = tadb.msp_silentAuctionColors.Single(x => x.colorDescription == "textColor");

var altColor = tadb.msp_silentAuctionColors.Single(x => x.colorDescription == "altColor");
var backgroundColor = tadb.msp_silentAuctionColors.Single(x => x.colorDescription == "backgroundColor");

textColor.colorValue = tbTextColor.Text;
altColor.colorValue = tbAltColor.Text;
backgroundColor.colorValue = tbBackgroundColor.Text;

tadb.SubmitChanges();
}

回发的值是原始值(不是更改后的值)。如果我注释掉加载时填充文本框的行,它就可以正常工作。

最佳答案

那是因为您没有将数据绑定(bind)内容包装在 Page_Load 中的 IsPostBack 检查中。因此,您总是用数据库中的旧值覆盖更改后的值。

所以你只需这样做:

protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
tadbDataContext tadb = new tadbDataContext();
Dictionary<string, string> hexColors = tadb.msp_silentAuctionColors.ToDictionary(t => t.colorDescription, t => t.colorValue);

tbTextColor.Text = hexColors["textColor"];
tbAltColor.Text = hexColors["altColor"];
tbBackgroundColor.Text = hexColors["backgroundColor"];
}
}

关于asp.net - 为什么我提交时我的文本框无法识别值已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326662/

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