ASP.网络数据问题

本文关键字:问题 数据 网络 ASP | 更新日期: 2023-09-27 18:04:54

我已经声明式地创建了一个LinqDataSource和DataList,并在标记中绑定了它们。我已经创建了一个ItemTemplate和Edit Template。

我已经将DataLists的oneditcommand和oncancelcommand绑定到后面代码中的方法。

<asp:DataList ID="MyDataList" runat="server" DataSourceID="LinqDataSource1" RepeatDirection="Horizontal"
    Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
    Font-Underline="False" HorizontalAlign="Center" RepeatColumns="4" 
    oneditcommand="MyDataList_EditCommand" 
    oncancelcommand="MyDataList_CancelCommand" 
    >
<ItemTemplate>
    <div style="margin: 5px;">
        <asp:LinkButton Text="Edit" CommandName="Edit" style="float:right" runat="server" />
    // Other markup    
    </div>
</ItemTemplate>

当我点击ItemTemplate中的LinkButton时,它运行以下代码:

protected void DataList_EditCommand(object source, DataListCommandEventArgs e)
        {
            MyDataList.EditItemIndex = e.Item.ItemIndex;
            MyDataList.DataBind();
        }

这可以很好地工作,并将数据列表中选中的项置于编辑模式。编辑模板:

    <EditItemTemplate>
        <div style="margin: 5px;">
            <asp:LinkButton Text="Cancel" style="float:right" 
                runat="server" CommandName="cancel" CausesValidation="false"/>
      //other markup
        </div>
    </EditItemTemplate>

当我在编辑模板中单击取消按钮时,它不会触发后面代码中的方法(断点没有被击中)。

取消时应该运行的代码永远不会运行,所以我不能退出编辑模式回到正常的读取模式:

protected void MyDataList_CancelCommand(object source, DataListCommandEventArgs e)
    {
        PhotoDataList.EditItemIndex = -1;
        PhotoDataList.DataBind();
    }

有谁能想出一个原因吗?

——更新

似乎这只是第二次发射的事件的数据列表,不工作,因为我已经知道绑定到ItemCommand事件,并打算拦截DataListCommandEventArgs。CommandName属性并基于它做一些事情。如果单击Edit link按钮,则触发ItemCommand方法(根本没有代码体),但是第二次单击Edit link按钮时,ItemCommand方法没有被击中。

ASP.网络数据问题

数据列表的名称是:"MyDataList"

but Cancel事件调用PhotoDataList!

protected void MyDataList_CancelCommand(object source, DataListCommandEventArgs e)
    {
        PhotoDataList.EditItemIndex = -1;
        PhotoDataList.DataBind();
    }

我不能重复你的问题,我运行了这个演示代码,所有事件和模板工作正常:

如何:允许用户编辑DataList Web Server控件中的项

你的事件日志中有错误吗?此外,我没有看到定义的DataKeyField,你是如何选择你的数据?