detailsview 如何实现编辑、更新、取消(手写代码),请高手讲一下主要思路吧
解决方案 »
- 打印对话框中打印机属性的疑问
- 如何删除数组里面的某一个元素??
- 在winform中listview如何控制每行显示的项数
- webbrowser控件编程中如何得到iframe 元素本身在 webbrowser 中的坐标?
- Microsoft.Net ClickOnce Launch Utility遇到问题需要关闭,到底是什么原因引起的,那们能帮着解决一下啊 !!!!!!!!!
- 有没有不需要加CodePage=936的Js日历控件....
- 关于C# 编写dll,vb6调用的问题
- asp.net 调用web接口
- 谁有OA的截面给我看看
- 控制台程序执行时间问题。
- 在asp.net(c#)中如何实现文件的复制与删除?
- 如何标记当前行是新增还是修改...(datagridview)
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>DetailsView</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT * FROM [cloud]" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [cloud] WHERE [id] = @original_id AND [name] = @original_name AND [num] = @original_num"
InsertCommand="INSERT INTO [cloud] ([name], [num]) VALUES (@name, @num)" OldValuesParameterFormatString="original_{0}"
UpdateCommand="UPDATE [cloud] SET [name] = @name, [num] = @num WHERE [id] = @original_id AND [name] = @original_name AND [num] = @original_num">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_name" Type="String" />
<asp:Parameter Name="original_num" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="num" Type="Int32" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_name" Type="String" />
<asp:Parameter Name="original_num" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="num" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="SqlDataSource1" Height="50px"
Width="125px" AutoGenerateRows="False" AllowPaging="True" AutoGenerateEditButton="True"
AutoGenerateDeleteButton="True" AutoGenerateInsertButton="True">
<Fields>
<asp:BoundField ReadOnly="True" HeaderText="ID" DataField="id" InsertVisible="false" />
<asp:BoundField HeaderText="Name" DataField="name" />
<asp:BoundField HeaderText="Num" DataField="num" />
</Fields>
</asp:DetailsView>
</div>
</form>
</body>
</html>
参考一下
利用CellBeginEdit和CellEndEdit
标记改动的行
定义一个全局arrayList
将行号添加进去
再进行处理
{
DetailsView1.ChangeMode(e.NewMode);
}为什么我添加了这个事件之后点击"编辑"要点击两下才有效呢?点击"取消"操作也是这样?
也是论坛上出现最多的方法
这个控件如果在后台用DataSource进行绑定,会出现许多如:更新时取不到最新的值得问题,这个问题正在解决中,希望知道的高手留言,一起讨论
如果你用的vs的话 那就简单了
配置下数据,再把属性调整下设置为可编辑,可删除,可增加后
再配置到你的dataCommand事件中(或editCommand,updatecommand,deletecommand事件)
然后写方法就OK了
如果数据过多
我建议数据的封装手动来做