S
Steven Livingstone
For once i decided to use the much hyped wizards that come with Net 2 rather
than the programmatic way I have always done.
What a nightmare - and some google, i see i am not the only one. A whole day
for something i could write in a fraction of the time!!
I have an object i am binding to with a two sources. One gets the master
data for a datagrid. The second happens on a select event and happily
displays the information retrieved from the object, passing in a
QueryStringParameter and a ControlParameter from the master grid and
populates a DetailsView. All works nice.
Them i go to update and i get various random errors and it is a nightmare to
debug as it doesn't throw an exception in VS and unlike the nice
programmatic view i got with ItemCreated and so on in V1, i can't seem to
step through anything.
Here is the full code - i have nothing in the code behind now, but if it
continue this way i may well go back to my old ways as this is quite frankly
a joke (for something that is really a foundational requirement).
Even is there is some subtle answer, it is never going to take off if this
is the level we have to work at.
I get "Input string was not in a correct format." and if i play around i get
the well known "non generic method" exception. The Direction field is an
enumeration.
thanks,
steven :: http://stevenR2.com
<asp:ObjectDataSource ID="ucContactList" runat="server"
SelectMethod="GetContacts" TypeName="ContactManager.Entity.ContactBook">
<SelectParameters>
<asp:QueryStringParameter Name="UserID" QueryStringField="uid" Type="Int32"
DefaultValue="66" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ucContactListDetail" runat="server"
SelectMethod="GetContact" TypeName="ContactManager.Entity.Contact"
UpdateMethod="Save">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="66" Name="UserID"
QueryStringField="uid" Type="Int32" />
<asp:ControlParameter ControlID="GridView1" Name="ContactID"
PropertyName="SelectedValue" Type="Int32" DefaultValue="" />
</SelectParameters>
<UpdateParameters>
<asp:QueryStringParameter Name="UserID" QueryStringField="uid" Type="Int32"
DefaultValue="66" />
<asp:ControlParameter ControlID="DetailsView1" Name="ContactID"
PropertyName="SelectedValue" Type="Int32" DefaultValue="67" />
<asp:ControlParameter ControlID="DetailsView1" Name="Direction"
PropertyName="SelectedValue" Type="Int32" DefaultValue="1" />
</UpdateParameters>
</asp:ObjectDataSource>
<table width="100%" cellpadding="0" cellspacing="5">
<tr>
<td width="10%" valign="top">
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
ForeColor="Black" GridLines="Horizontal"
DataSourceID="ucContactList" AutoGenerateColumns="False"
BackColor="Gainsboro" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="0px" Width="10%"
DataKeyNames="ContactID" ShowHeader="False" AllowPaging="True"
PageSize="15">
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="ContactID" ReadOnly="False" Visible="False" />
<asp:BoundField DataField="DisplayName" >
<ItemStyle Width="20%" />
</asp:BoundField>
<asp:CommandField ShowSelectButton="True" SelectText="view" >
<ItemStyle Width="20%" />
</asp:CommandField>
</Columns>
</asp:GridView>
</td>
<td width="10%" > </td>
<td width="80%" valign="top">
<asp
etailsView ID="DetailsView1" runat="server"
DataSourceID="ucContactListDetail" Height="50px"
Width="100%" AutoGenerateRows="False" GridLines="Horizontal"
FieldHeaderStyle-Width="20%" RowStyle-Width="80%">
<RowStyle Width="80%" />
<FieldHeaderStyle Width="20%" />
<Fields>
<asp:BoundField DataField="ContactID" HeaderText="ContactID"
ReadOnly="False" Visible="True" />
<asp:BoundField DataField="DisplayName" HeaderText="Handle" ReadOnly="False"
/>
<asp:BoundField DataField="Description" HeaderText="Overview" />
<asp:BoundField DataField="Direction" HeaderText="Synchronization" />
<asp:BoundField DataField="Notes" HeaderText="Notes" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp
etailsView>
</td>
</tr>
</table>
</asp:Content>
than the programmatic way I have always done.
What a nightmare - and some google, i see i am not the only one. A whole day
for something i could write in a fraction of the time!!
I have an object i am binding to with a two sources. One gets the master
data for a datagrid. The second happens on a select event and happily
displays the information retrieved from the object, passing in a
QueryStringParameter and a ControlParameter from the master grid and
populates a DetailsView. All works nice.
Them i go to update and i get various random errors and it is a nightmare to
debug as it doesn't throw an exception in VS and unlike the nice
programmatic view i got with ItemCreated and so on in V1, i can't seem to
step through anything.
Here is the full code - i have nothing in the code behind now, but if it
continue this way i may well go back to my old ways as this is quite frankly
a joke (for something that is really a foundational requirement).
Even is there is some subtle answer, it is never going to take off if this
is the level we have to work at.
I get "Input string was not in a correct format." and if i play around i get
the well known "non generic method" exception. The Direction field is an
enumeration.
thanks,
steven :: http://stevenR2.com
<asp:ObjectDataSource ID="ucContactList" runat="server"
SelectMethod="GetContacts" TypeName="ContactManager.Entity.ContactBook">
<SelectParameters>
<asp:QueryStringParameter Name="UserID" QueryStringField="uid" Type="Int32"
DefaultValue="66" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ucContactListDetail" runat="server"
SelectMethod="GetContact" TypeName="ContactManager.Entity.Contact"
UpdateMethod="Save">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="66" Name="UserID"
QueryStringField="uid" Type="Int32" />
<asp:ControlParameter ControlID="GridView1" Name="ContactID"
PropertyName="SelectedValue" Type="Int32" DefaultValue="" />
</SelectParameters>
<UpdateParameters>
<asp:QueryStringParameter Name="UserID" QueryStringField="uid" Type="Int32"
DefaultValue="66" />
<asp:ControlParameter ControlID="DetailsView1" Name="ContactID"
PropertyName="SelectedValue" Type="Int32" DefaultValue="67" />
<asp:ControlParameter ControlID="DetailsView1" Name="Direction"
PropertyName="SelectedValue" Type="Int32" DefaultValue="1" />
</UpdateParameters>
</asp:ObjectDataSource>
<table width="100%" cellpadding="0" cellspacing="5">
<tr>
<td width="10%" valign="top">
<asp:GridView ID="GridView1" runat="server" CellPadding="4"
ForeColor="Black" GridLines="Horizontal"
DataSourceID="ucContactList" AutoGenerateColumns="False"
BackColor="Gainsboro" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="0px" Width="10%"
DataKeyNames="ContactID" ShowHeader="False" AllowPaging="True"
PageSize="15">
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="ContactID" ReadOnly="False" Visible="False" />
<asp:BoundField DataField="DisplayName" >
<ItemStyle Width="20%" />
</asp:BoundField>
<asp:CommandField ShowSelectButton="True" SelectText="view" >
<ItemStyle Width="20%" />
</asp:CommandField>
</Columns>
</asp:GridView>
</td>
<td width="10%" > </td>
<td width="80%" valign="top">
<asp
DataSourceID="ucContactListDetail" Height="50px"
Width="100%" AutoGenerateRows="False" GridLines="Horizontal"
FieldHeaderStyle-Width="20%" RowStyle-Width="80%">
<RowStyle Width="80%" />
<FieldHeaderStyle Width="20%" />
<Fields>
<asp:BoundField DataField="ContactID" HeaderText="ContactID"
ReadOnly="False" Visible="True" />
<asp:BoundField DataField="DisplayName" HeaderText="Handle" ReadOnly="False"
/>
<asp:BoundField DataField="Description" HeaderText="Overview" />
<asp:BoundField DataField="Direction" HeaderText="Synchronization" />
<asp:BoundField DataField="Notes" HeaderText="Notes" />
<asp:CommandField ShowEditButton="True" />
</Fields>
</asp
</td>
</tr>
</table>
</asp:Content>