问题描述
|
你好,
我不知道这是否是已知问题-但是,当我单击一次“编辑”按钮时-服务器重新加载了列表视图-当我再次单击“编辑”按钮时,我收到了EditTemplate并且可以进行编辑列表视图...这是已知的行为吗?
此外:后面的c#正在整个编辑周期中工作(加载特殊的编辑数据)-但我仍然只看到通常的\“ view \\”。
//为问题添加了一些肉
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();
}
这是编辑功能-用户按下\“ edit \”按钮后即会调用---两次尝试均已完成..但是,仅第二次尝试会返回\“ EditItemTemplate \”。
对于edit事件,page_load函数是不必要的,因为edit事件是回发事件,因此在两种情况下都将跳过页面加载。
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)
{
...
}
}
}
}
解决方法
将其添加到ItemEditing处理程序的开头:
speiseplanListView.EditIndex = e.NewEditIndex;
另外,验证speiseplanListView.DataBind();页面加载处理程序中的回发时未调用。
最后,本教程可能对您有价值