【问题标题】:ItemUpdating does not call on DetailsView using EntityDataSourceItemUpdating 不使用 EntityDataSource 调用 DetailsView
【发布时间】:2011-12-09 19:16:41
【问题描述】:

我有一个绑定到实体数据源的详细信息视图,并正在尝试使用它来更新一些内容。但是当我按下更新按钮时,ItemUpdating 事件永远不会触发。

代码如下:

<asp:DetailsView ID="DetailsView1" DataKeyNames="Id" runat="server" AutoGenerateRows="False" OnDataBound="DetailsView_DataBound" 
    DataSourceID="eds2"  BorderWidth="0" OnModeChanging="OnModeChanging" AutoGenerateEditButton="true" OnItemUpdated="DetailsView_OnItemUpdated"  OnItemUpdating="DetailsView_OnItemUpdating"
    EmptyDataText="N/A" 
    CellPadding="0" CellSpacing="7" GridLines="None" CssClass="Center">
    <Fields>
        <asp:BoundField DataField="Name" HeaderText="Name: "  />
        <asp:BoundField DataField="AccessCode" HeaderText="Access Code: "  />
        <asp:BoundField DataField="Password" HeaderText="Password: "  />
        <asp:BoundField DataField="MaxVoters" HeaderText="Max Voters: "  />                        
        <asp:BoundField DataField="Created" HeaderText="Created: " ReadOnly="true"  />
        <asp:BoundField DataField="Updated" HeaderText="Updated: " ReadOnly="true"  />
    </Fields>
</asp:DetailsView>

还有 EntityDataSource:

<asp:EntityDataSource ID="eds2" runat="server" ConnectionString="name=BallotOnlineEntities" 
    DefaultContainerName="EntitiesOne" EntitySetName="Accounts"  OnInserting="eds1_Inserting" OnUpdating="eds1_Updating" OnDeleting="eds1_Deleting"
    EnableDelete="True" EnableFlattening="False" EnableInsert="True" 
    EnableUpdate="True">
    <UpdateParameters>
        <asp:Parameter Name="AccessCode" Type="String" />
    </UpdateParameters>
</asp:EntityDataSource>

在 OnModeChange 期间,我设置了数据源的 where 属性,以便它查询正确的项目,这是我可以让它工作的唯一方法,但我认为这不是问题。

protected void OnModeChanging(object sender, DetailsViewModeEventArgs e)
{
    eds2.Where = string.Format("it.AccessCode = '{0}'",accountIDPlaceholder.Text );

    DetailsView1.DataBind();
}

protected void DetailsView_OnItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
    //Do Stuff 
}

任何想法为什么我的事件没有触发?我希望它触发的原因是当我单击更新时它似乎根本没有更新实体。

谢谢,

泰罗扎克

【问题讨论】:

  • 您是否取消了eds1_Updating 处理程序中的更新(通过设置e.Cancel = true;)?

标签: c# asp.net detailsview


【解决方案1】:

在您的详细信息视图集上

    CausesValidation="false"

【讨论】:

    【解决方案2】:

    确保页面上的EnableViewState没有设置为false。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多