从文本框获取文本/值后的值/文本修改服务器端 [英] Get text/value from textbox after value/text changed server side
问题描述
我有一个 FormView控件
数据(数据源
,的DataBind
),我充满了值='<%#的eval(姓名)%>
,但之后我改变了文本文本框
和preSS更新按钮,我看到之前,我不能看到我已经输入新的值相同。
我是缺少在这里?
我的HTML
< ASP:FormView控件ID =MainFormTemplate=服务器>
<&ItemTemplate中GT;
<李班=li_result=服务器>
< DIV CLASS =COL-3>
<输入ID =txt_Name=服务器值='<%#的eval(姓名)%>'>
< / DIV>
< /李>
< / ItemTemplate中>
< / ASP:FormView控件>
< ASP:按钮的ID =btn_Update=服务器的OnClick =btn_Update_Click文本=更新/>
服务器端
保护无效的Page_Load(对象发件人,EventArgs的发送)
{
使用(DB_MikaDataContext数据=新DB_MikaDataContext())
{
MainFormTemplate.DataSource = data.File_Projects.Where(X => x.Num_Tik.Equals(12))了ToList();
MainFormTemplate.DataBind();
}
}
公共无效btn_Update_Click(对象发件人,EventArgs的发送)
{
使用System.Web.UI.HtmlControls //
的HtmlInputText TWT =(的HtmlInputText)MainFormTemplate.FindControl(txt_Name);
字符串文本= twt.Value; //我看到旧值,而不是新的,我在文本框中键入
}
在每个回发
,你总是让从数据库中的旧值。解决的办法是检查页面所呈现的第一次( !的IsPostBack
),然后设置你的 MainFormTemplate
的数据源
否则,如果被加载响应回发( 的IsPostBack
)获得 txt_Name
的价值是这样的:
的HtmlInputText TWT;保护无效的Page_Load(对象发件人,EventArgs的发送)
{
如果(!的IsPostBack)
{
使用(DB_MikaDataContext数据=新DB_MikaDataContext())
{
MainFormTemplate.DataSource = data.File_Projects.Where(X => x.Num_Tik.Equals(12))了ToList();
MainFormTemplate.DataBind();
}
}
其他
{
TWT = MainFormTemplate.FindControl(txt_Name)作为的HtmlInputText;
}
}保护无效btn_Update_OnClick(对象发件人,EventArgs的发送)
{
字符串文本= twt.Value; //你会得到新的价值
}
I have a FormView
with data(DataSource
,DataBind
) that I fill with value='<%# Eval("Name") %>'
, but after I'm changing the text in TextBox
and press update button I see the same value that before, I cant see new value that I have typed.
What I am missing here?
my 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" />
Server side
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
}
In every postback
, you are always getting the old value from your database. The solution is check if the page is being rendered for the first time (!IsPostBack
) then set your MainFormTemplate
's DataSource
else if is being loaded in response to a postback (IsPostBack
) get the txt_Name
's value like this:
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
}
这篇关于从文本框获取文本/值后的值/文本修改服务器端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!