gpt4 book ai didi

c# - 在值/文本更改服务器端后从文本框中获取文本/值

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

我有一个 FormView我用 DataSource 填充的数据( DataBind , value='<%# Eval("Name") %>' ) , 但在我更改了 TextBox 中的文本之后然后按更新按钮我看到了与之前相同的值,但我看不到我输入的新值。

我在这里缺少什么?

我的html

<asp:FormView ID="MainFormTemplate" runat="server">  
<ItemTemplate>
<li class="li_result" runat="server">
<div class="col-3">
<input id="txt_Name" runat="server" value='<%# Eval("Name") %>'>
</div>
</li>
</ItemTemplate>
</asp:FormView>
<asp:Button id="btn_Update" runat="server" OnClick="btn_Update_Click" Text="Update" />

服务器端

protected void Page_Load(object sender, EventArgs e)
{
using (DB_MikaDataContext data = new DB_MikaDataContext())
{
MainFormTemplate.DataSource = data.File_Projects.Where(x => x.Num_Tik.Equals("12")).ToList();
MainFormTemplate.DataBind();
}
}


public void btn_Update_Click(object sender, EventArgs e)
{
//using System.Web.UI.HtmlControls
HtmlInputText twt = (HtmlInputText)MainFormTemplate.FindControl("txt_Name");
string text = twt.Value;//i see old value ,not new one that i typed in text box
}

最佳答案

在每个回发 中,您总是从数据库中获取旧值。解决方案是检查页面是否是第一次呈现 (!IsPostBack),然后设置您的 MainFormTemplateDataSource else if 正在加载以响应回发 (IsPostBack) 获取 txt_Name 的值,如下所示:

HtmlInputText twt;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
using (DB_MikaDataContext data = new DB_MikaDataContext())
{
MainFormTemplate.DataSource = data.File_Projects.Where(x => x.Num_Tik.Equals("12")).ToList();
MainFormTemplate.DataBind();
}
}
else
{
twt = MainFormTemplate.FindControl("txt_Name") as HtmlInputText;
}
}

protected void btn_Update_OnClick(object sender, EventArgs e)
{
string text = twt.Value; // You will get the new value
}

关于c# - 在值/文本更改服务器端后从文本框中获取文本/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34544500/

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