首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找导致命令事件的datalist项

如何查找导致命令事件的datalist项
EN

Stack Overflow用户
提问于 2014-06-10 13:49:29
回答 1查看 695关注 0票数 0

我有nested-datalist,在子datalistitemcommand事件上,我做了一些如下所示的事情

代码语言:javascript
复制
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,也不是遍历datalist的每个itemforeach循环。

EN

回答 1

Stack Overflow用户

发布于 2017-06-28 21:54:26

你从Session得到了DataList,这不是一件好事。您必须在ItemCommand事件中转换来自Object源代码的DataList,如下所示:

代码语言:javascript
复制
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
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24133747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档