我有一个包含大量文本框,下拉菜单等的表单。 我使用此表单输入新数据,但我也想使用相同的页面来更改数据。但是我必须用要更改的客户信息填充数据。
现在在Page_Load中我有
protected void Page_Load(object sender, EventArgs e)
{
Master.PageTitle(PageTitles.UpdateAdd);
NameValueCollection nvc = Request.Form;
if (nvc.Count == 2 && nvc["ThisIsAnUpdate"] == "1")
{
// Ladies and gentlemen, we have an update. Do the work.
ThisIsAnUpdate.Value = "1";
DetailedAddressEntity myCustomer = new RetreiveInformation().FetchDetailedInformation(nvc["ID"]);
SetupEdit(myCustomer);
}
}
然后在SetupEdit中我这样做:
protected void SetupEdit(DetailedAddressEntity dae)
{
FirstName.Text = dae.aFirstName;
LastName.Text = dae.aLastName;
SubscriberNumber.Text = dae.aSubscriberNumber;
... and so on...
}
FirstName,LastName和SubscriberNumber永远不会更改。当我使用页面创建一个新客户时,它们工作得很好,从那时起我回发来填充这些文本框,但是当我尝试在页面加载时访问它们时......没有。
我知道SetupEdit中的代码实际上已经运行,但是在我的浏览器中已经绘制了页面之后。我试图强制回发,但这也不起作用。
可帮助?
更多解释:Page_Load首先通过主页面设置页面的标题,因为我这样做没有遇到麻烦我认为我也可以填写文本框。 DetailedAddressEntity myCusomter只是从DB中获取的大量变量。 我使用获取的信息来填充文本框,但是 - 唉 - 其中没有信息。
更多信息: 我将数据库调用移动到SetupEdit并在页面上创建了一个按钮并调用该函数以查看该函数是否已损坏。它完美地运作。它可以获取所有信息并完美填充我的文本框。
但是,如果我从Page_Load中调用相同内容,那就不行了。
protected void SetupEdit(string ID)
{
DetailedAddressEntity dae = new RetreiveInformation().FetchDetailedInformation(ID);
FirstName.Text = dae.aFirstName;
LastName.Text = dae.aLastName;
SubscriberNumber.Text = dae.aSubscriberNumber;
... and so on...
答案 0 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
Master.PageTitle(PageTitles.UpdateAdd);
NameValueCollection nvc = Request.Form;
if (nvc.Count == 2 && nvc["ThisIsAnUpdate"] == "1")
{
// Ladies and gentlemen, we have an update. Do the work.
ThisIsAnUpdate.Value = "1";
DetailedAddressEntity myCustomer = new RetreiveInformation().FetchDetailedInformation(nvc["ID"]);
SetupEdit(myCustomer);
}
}
}