2014-06-10 32 views
0

我有nested-datalist和孩子datalistitemcommand事件我做一些這樣的事如何找到造成命令事件數據列表項

if (e.CommandName == "Delete") 
{ 
    string keyID; 

    int idx = e.Item.ItemIndex; 
    DataClasses1DataContext db = new DataClasses1DataContext(); 
    DataList dl = Session["dl"] as DataList; 
    object thisKey = dl.DataKeys[idx]; 

    keyID = thisKey.ToString(); 
    foreach (DataListItem item in dl.Items) 
    { 
     LinkButton lb = item.FindControl("LinkButton1") as LinkButton; 
     ImageButton ib = item.FindControl("ImageButton1") as ImageButton; 
     string s = item.ItemIndex.ToString(); 
     string j = s; 
     if (item.ItemIndex == idx) 
     { 
      string dds = ib.AlternateText; 
      Label ServiceCommentIDLabel = item.FindControl("ServiceCommentIDLabel") as Label; 
      string ds = ServiceCommentIDLabel.Text; 
      ServiceComment sc = db.ServiceComments.Where(o => o.ServiceCommentID == long.Parse(ServiceCommentIDLabel.Text)).First(); 
      db.ServiceComments.DeleteOnSubmit(sc); 
      Response.Redirect("Services.aspx"); 
     } 
    } 
} 

既不知道它的採摘確切datakey也不foreach遍歷每個遍歷itemdatalist

+0

爲什麼你用你的問題'C'標籤。我認爲它應該是'C#'? –

+0

對不起誤t c,我編輯帖子感謝, –

回答

0

您正在從Session得到DataList這不是件好事。你必須從DataListObjectItemCommand事件這樣的轉換:

protected void Child_DataList_ItemCommand(object source, DataListCommandEventArgs e) 
{ 
    if (e.CommandName == "Delete") 
    { 
     // get DataList from the source 
     DataList dl = source as DataList; 

     object thisKey = dl.DataKeys[e.Item.ItemIndex]; 
     // do your work here 
    } 
}