我正在尝试编写一个DetailsView,但缺少一些编码。你能看一下这个编码,让我知道我错过了什么因为点击编辑按钮或新建按钮不会改变DetailsView的模式,所以我可以输入数据。
这是DetailsView的编码:
<asp:UpdatePanel
ID="UpdatePanelParentsSummary"
runat="server"
UpdateMode="Conditional">
<ContentTemplate>
<asp:DetailsView
ID="DetailsViewParentsDetails"
runat="server"
Height="50px"
Width="404px"
AutoGenerateRows="False">
<Fields>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button
ID="ButtonEdit"
runat="server"
CausesValidation="False"
CommandName="Edit"
Text="Edit" />
<asp:Button
ID="ButtonNew"
runat="server"
CausesValidation="False"
CommandName="New"
Text="New" />
<asp:Button
ID="ButtonDelete"
runat="server"
CausesValidation="False"
CommandName="Delete"
Text="Delete" />
<AjaxToolKit:ConfirmButtonExtender ID="deleteButtonConfirmation"
runat="server"
ConfirmText='<%# "You are about to remove: " & vbcr &
Eval("FatherName") & vbcr & Eval("MotherName") & "!!!" &
vbcrlf & "Are you sure you want to do this?" & vbcrlf &
"Clicking the OK button will delete this parent." %>'
Enabled="True"
TargetControlID="ButtonDelete">
</AjaxToolKit:ConfirmButtonExtender>
</ItemTemplate>
<EditItemTemplate>
<asp:Button
ID="ButtonUpdate"
runat="server"
CausesValidation="True"
CommandName="Update"
Text="Update" />
<asp:Button
ID="ButtonCancelUpdates"
runat="server"
CausesValidation="False"
CommandName="Cancel"
Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
<asp:Button
ID="ButtonInsert"
runat="server"
CausesValidation="True"
CommandName="Insert"
Text="Insert" />
<asp:Button
ID="ButtonCancelInsert"
runat="server"
CausesValidation="False"
CommandName="Cancel"
Text="Cancel" />
</InsertItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" Visible="False" />
<asp:BoundField
DataField="FatherName"
HeaderText="Father's Name:">
<ItemStyle ForeColor="Blue" />
</asp:BoundField>
<asp:BoundField
DataField="MotherName"
HeaderText="Mother's Name:">
<ItemStyle ForeColor="Blue" />
</asp:BoundField>
<asp:BoundField
DataField="FatherOccupation"
HeaderText="Father's Occupation:">
<ItemStyle ForeColor="Blue" />
</asp:BoundField>
<asp:BoundField
DataField="FatherEmploymentPlace"
HeaderText="Father's Employment Place:">
<ItemStyle ForeColor="Blue" />
</asp:BoundField>
<asp:BoundField
DataField="FatherWorkPhone"
HeaderText="Father's Work Phone:">
<ItemStyle ForeColor="Blue" />
</asp:BoundField>
</Fields>
<HeaderTemplate>
<%#IIf(Eval("FatherName") = Nothing,
"Adding New Student", "Details For: " & Eval("FatherName") & " *** " & Eval("MotherName"))%>
</HeaderTemplate>
</asp:DetailsView>
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:2)
尝试将OnItemCommand事件处理程序添加到DetailsView。
<asp:DetailsView
ID="DetailsViewParentsDetails"
OnItemCommand="DetailsViewParentsDetails_ItemCommand"
runat="server"
Height="50px"
Width="404px"
AutoGenerateRows="False">
在您的代码隐藏文件(.cs)中,您需要添加以下内容:
protected void DetailsViewParentsDetails_ItemCommand(object sender, DetailsViewCommandEventArgs e)
{
if (e.CommandName.Equals("New"))
{
this.DetailsViewParentsDetails.ChangeMode(DetailsViewMode.Insert);
this.DetailsViewParentsDetails.DataBind();
}
else if (e.CommandName.Equals("Edit"))
{
this.DetailsViewParentsDetails.ChangeMode(DetailsViewMode.Edit);
this.DetailsViewParentsDetails.DataBind();
}
}