你好 我不知道这是否是一个已知的问题 - 但是当我点击编辑按钮一次 - 服务器重新加载列表视图 - 当我再次点击编辑按钮时,我收到EditTemplate,我可以编辑列表view ...这是一种已知行为吗?
此外:c#后面正在完成整个编辑周期(加载特殊编辑数据) - 但我仍然只看到通常的“视图”。
//为问题添加了一些内容
public void test_ItemEditing(Object sender, ListViewEditEventArgs e)
{
// returns the current key
DataKey currentDataKey = speiseplanListView.DataKeys[e.NewEditIndex];
// fetches the information - for the whole plane
DataTable speiseplan = getSpeiseplan(0);
DataTable preisgruppen = getPreisgruppen();
extractTags(speiseplan);
extractPreise(speiseplan, preisgruppen);
speiseplanListView.DataSource = speiseplan;
speiseplanListView.DataBind();
}
这是编辑功能 - 一旦用户按下“编辑”按钮就会调用它 - 它在两次尝试时都已完成..但是只有第二次尝试才会返回“EditItemTemplate”。
对于编辑事件,page_load函数是不必要的 - 因为编辑事件是一个回发事件 - 因此在两种情况下都会跳过页面加载。
protected void Page_Load(object sender, EventArgs e)
{
if (Session["USERID"] == null)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
Session.Abandon();
}
else
{
this.kantinenID = Convert.ToInt32(Request["id"]);
this.userID = Convert.ToInt16(Session["USERID"]);
if (IsPostBack == false)
{
try
{
switch (Request["action"])
{
...
}
}
catch (System.FormatException ex)
{
...
}
}
}
}
答案 0 :(得分:1)
将其添加到ItemEditing处理程序的开头:
speiseplanListView.EditIndex = e.NewEditIndex;
另外,验证speiseplanListView.DataBind();在页面加载处理程序中没有调用回发。
最后,this tutorial可能对您有一定价值