标题:[求助]DetailsView 编辑问题
只看楼主
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
 问题点数:0 回复次数:7 
[求助]DetailsView 编辑问题
我在页面里用了一个GridView 来显示公告内容的标题,通过点击一条公告的标题在DetailsView里显示公告的具体内容,并用了DetailsView自带的编辑功能……
现在有一个问题是:DetailsView中编辑后的内容不能提交到数据库,还是原来的内容,既无法编辑……请有经验的朋友帮忙看看,谢谢了!
PS: 我是通过数据集访问数据库的……

原代码如下:
1)GridView的代码
asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id"
DataSourceID="ObjectDataSource1" AllowPaging="True" CellPadding="4" ForeColor="#333333" GridLines="None" PageSize="8">
<Columns>
<asp:TemplateField HeaderText="公告标题" SortExpression="Title">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "~/NoticeManage.aspx?Id="+Eval("Id")%>'><%#Eval("Title") %></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CreateDate" HeaderText="创建时间" SortExpression="CreateDate" />
<asp:TemplateField HeaderText="操作" >
<ItemTemplate>
<asp:LinkButton runat="server" ID="BtnDelete" CausesValidation="false" CommandName="Delete" Text="删除" OnClientClick="return confirm('确认要删除此行信息吗?')"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" TypeName="DAONoticeTableAdapters.SP_NoticeSelectAllTableAdapter" >
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int64" />
</DeleteParameters>
</asp:ObjectDataSource>

2)DetailsView的代码

<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False" DataSourceID="ObjectDataSource3"
Height="50px" Width="125px" AllowPaging="True">
<Fields>
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="Content" HeaderText="Content" SortExpression="Content" />
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
Text="编辑"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
<asp:ObjectDataSource ID="ObjectDataSource3" runat="server"
SelectMethod="GetNoticeSelectOne" TypeName="DAONoticeTableAdapters.SP_NoticeSelectOneByNoticeIdTableAdapter"
UpdateMethod="UpdateNoticOther" >
<SelectParameters>
<asp:QueryStringParameter Name="NoticeId" QueryStringField="Id" Type="Int64" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Id" Type="Int64" />
<asp:Parameter Name="Title" Type="String" />
<asp:Parameter Name="Content" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>


[此贴子已经被作者于2007-8-16 21:46:31编辑过]

搜索更多相关主题的帖子: DetailsView 
2007-08-16 21:44
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 
在含DetailsView的page_load里加上if(!ispostback)就ok啦

2007-08-17 08:50
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
以下是引用yunj1105在2007-8-17 8:50:27的发言:
在含DetailsView的page_load里加上if(!ispostback)就ok啦

谢谢yunj1105的提醒!不过我还是不知道if(!ispostback)这个判断里怎么写具体的内容呢?
PS:原来含DetailsView的page_load里是空的…… 显示数据的所有代码都在 NoticeManage.aspx里,而page_load在NoticeManage.aspx.cs里。


The future is ours to build!
2007-08-17 09:50
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
现在有一个问题是:DetailsView中编辑后的内容不能提交到数据库,还是原来的内容
这说明你的更新代码有问题

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-08-17 10:02
yunj1105
Rank: 1
等 级:新手上路
威 望:1
帖 子:757
专家分:0
注 册:2007-2-13
得分:0 
加上if(!ispostback)就行里面什么都不写 我以前出现过这样的问题

2007-08-17 15:09
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
以下是引用yunj1105在2007-8-17 15:09:48的发言:
加上if(!ispostback)就行里面什么都不写 我以前出现过这样的问题

谢谢你……不过我试了,没有起作用……
我觉得数据库的代码不能有错吧,毕竟我用GridView的时候可以更新……我不知道是不是DetailsView的参数不正确,因为不能设置断点,也看不到太详细的运行信息……很郁闷呀!


The future is ours to build!
2007-08-17 18:32
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
实在搞不定,看来只能换另外的数据控件了……

The future is ours to build!
2007-08-18 10:25
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 

解决了……是NoticeSelectOneByNoticeId存储过程没有把ID这个字段选择出来……更新的时候参数Id传入的是空值。
谢谢大家!
我以后还会常来麻烦大家的,嘿嘿!


The future is ours to build!
2007-08-23 17:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-163279-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095832 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved