ASP文本框始终返回原始文本

时间:2014-05-01 13:05:42

标签: c# asp.net text textbox

我的网站上的文本框出现了一个奇怪的问题。

目前,我正在制作一个页面,允许客户更新其凭据。 所以我有一个页面显示文本框中的信息(从Page_Load中的DB中获取)

if (!Page.IsPostBack)
{
    //Ingelogd
    kService = new KlantService();
    ingelogdeKlant = kService.GetAllByUsername(inlogsessie.GetUsername());

    //Gegevens tonen
    begroeting.InnerText = "Welkom " + ingelogdeKlant.voornaam + " " + ingelogdeKlant.achternaam;
    txtVoornaam.Text = ingelogdeKlant.voornaam;
    txtAchternaam.Text = ingelogdeKlant.achternaam;
    txtStraat.Text = ingelogdeKlant.straat;
    txtNummer.Text = Convert.ToString(ingelogdeKlant.nummer);
    txtPostcode.Text = ingelogdeKlant.postcode;
    txtStad.Text = ingelogdeKlant.stad;
}

这是我用来从文本框中获取文本并将它们发送到我的数据库的代码(Trigger =按钮点击)

ingelogdeKlant.voornaam = txtVoornaam.Text;
ingelogdeKlant.achternaam = txtAchternaam.Text;
ingelogdeKlant.straat = txtStraat.Text;
ingelogdeKlant.nummer = Convert.ToInt16(txtNummer.Text);
ingelogdeKlant.postcode = txtPostcode.Text;
ingelogdeKlant.stad = txtStad.Text;

kService = new KlantService();
kService.UpdateKlant(ingelogdeKlant)

尝试过的解决方案#1: 删除IsPostBack检查 结果:txtSomething.text返回原始值(不是已编辑的值)

尝试过的解决方案#2: 添加IsPostBack检查 结果:txtSomething.text返回nullpointer

我不知道问题是什么,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

移动以下

//Ingelogd
kService = new KlantService();
ingelogdeKlant = kService.GetAllByUsername(inlogsessie.GetUsername());

if (!Page.IsPostBack)

之上

您的ingelogdeKlant仅在第一个Page_Load上实例化,而不是在后续回发中实例化。

每次发出请求(PostBack或不发布)时,都会实例化您的Page类,每次需要时都需要初始化任何成员;它们不会持久存在,因为Page对象不会持久存在。