我有一个绑定到实体数据源的详细信息视图,正在尝试使用它来更新一些东西。但是,当我按下更新按钮时,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
}你知道为什么我的事件不会触发吗?我希望它触发的原因是,当我单击update时,它似乎根本没有更新实体。
谢谢,
泰·罗扎克
发布于 2012-07-18 01:01:08
在detailsview视图集上
CausesValidation="false"发布于 2019-05-01 06:14:48
确保页面上的EnableViewState未设置为false。
https://stackoverflow.com/questions/8450552
复制相似问题