Connecting Tech Pros Worldwide Help | Site Map

Asp.net 2.0, Gridview + Detailview

Newbie
 
Join Date: Apr 2007
Posts: 1
#1: Apr 4 '07
Hi
I have Gridview and DetailView both on one page.
I am showing the list in the Gridview and the particular record in DetailView.
the problem is When i EDIT on the DetailView and try to UPDATE it. It doesn't work.
I have setup 2 sqlDatasource for each Control. the Select Query for SqlDatasource which is bound to the DetailView has the control parameter which is bound to Griview.SelectedValue Parameter.

here's my markup for the page.

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<PagerSettings FirstPageText="First" LastPageText="Last" Mode="NextPreviousFirstLast"
NextPageText="Next" PreviousPageText="Prev" />
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="depname" HeaderText="Department" SortExpression="depname" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:LaborTrakConnectionString %>" DeleteCommand="DELETE FROM [tblAdministration] WHERE [depID] = @original_depID AND [depname] = @original_depname"
InsertCommand="INSERT INTO [tblAdministration] ([depname]) VALUES (@depname)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [tblAdministration]"
UpdateCommand="UPDATE [tblAdministration] SET [depname] = @depname WHERE [depID] = @original_depID AND [depname] = @original_depname">
<DeleteParameters>
<asp:Parameter Name="original_depID" Type="Int64" />
<asp:Parameter Name="original_depname" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="depname" Type="String" />
<asp:Parameter Name="original_depID" Type="Int64" />
<asp:Parameter Name="original_depname" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="depname" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
</td>
<td style="width: 3px; height: 20px">
&nbsp;<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
DataKeyNames="depID" DataSourceID="SqlDataSource2" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="depID" HeaderText="depID" InsertVisible="False" ReadOnly="True"
SortExpression="depID" />
<asp:BoundField DataField="rcID" HeaderText="rcID" SortExpression="rcID" />
<asp:BoundField DataField="deptname" HeaderText="deptname" SortExpression="deptname" />
<asp:CommandField ShowEditButton="True" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:LaborTrakConnectionString %>" DeleteCommand="DELETE FROM [tblDepartments] WHERE [depID] = @original_depID AND [rcID] = @original_rcID AND [deptname] = @original_deptname"
InsertCommand="INSERT INTO [tblDepartments] ([rcID], [deptname]) VALUES (@rcID, @deptname)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [depID], [rcID], [deptname] FROM [tblDepartments] WHERE ([depID] = @depID)"
UpdateCommand="UPDATE [tblDepartments] SET [rcID] = @rcID, [deptname] = @deptname WHERE [depID] = @original_depID AND [rcID] = @original_rcID AND [deptname] = @original_deptname">
<DeleteParameters>
<asp:Parameter Name="original_depID" Type="Int64" />
<asp:Parameter Name="original_rcID" Type="String" />
<asp:Parameter Name="original_deptname" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="rcID" Type="String" />
<asp:Parameter Name="deptname" Type="String" />
<asp:Parameter Name="original_depID" Type="Int64" />
<asp:Parameter Name="original_rcID" Type="String" />
<asp:Parameter Name="original_deptname" Type="String" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="depID" PropertyName="SelectedValue"
Type="Int64" />
</SelectParameters>
<InsertParameters>
<asp:Parameter Name="rcID" Type="String" />
<asp:Parameter Name="deptname" Type="String" />
</InsertParameters>
</asp:SqlDataSource>


I don't know what's wrong.
When i try checking in with the ItemUpdating event of SqlDataSource for the DetailView the e.NewValues.Count shows 2. but
e.NewValues.Item(1).ToString says it's "Nothing"!!

i don't know what's going wrong.

pls help

thanks
Deepak Palkar
Reply