从文本框获取文本/值后的值/文本修改服​​务器端 [英] Get text/value from textbox after value/text changed server side

查看:120
本文介绍了从文本框获取文本/值后的值/文本修改服​​务器端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 FormView控件数据(数据源的DataBind ),我充满了值='<%#的eval(姓名)%> ,但之后我改变了文本文本框和preSS更新按钮,我看到之前,我不能看到我已经输入新的值相同。

我是缺少在这里?

我的HTML

 < ASP:FormView控件ID =MainFormTemplate=服务器>
    <&ItemTemplate中GT;
        <李班=li_result=服务器>
            < D​​IV 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆