Hi all,
basically I had a repeater that i needed to be able to now update row by row. I thought the easiest way would be to replace with a datagrid.
Here is the code:
In code behind I then pull the data, fill a repater with one half of the data and the other half I want into the datagrid (Split by a boolean value using datagrid select)Code:<asp:GridView ID="grdNonEligible" runat="server" AutoGenerateColumns="False" OnRowEditing="grdNonEligible_RowEditing" OnRowCancelingEdit="grdNonEligible_RowCancelingEdit" OnRowUpdating="grdNonEligible_RowUpdating" DataKeyNames="BidID" > <Columns> <asp:TemplateField HeaderStyle-CssClass="FormDesciptionBox" ItemStyle-CssClass="FormContentBox" HeaderText="Name"> <ItemTemplate> <asp:Literal ID="litName" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderText="Registered" ReadOnly="true" DataField="registrationdate" HeaderStyle-CssClass="FormDesciptionBox" ItemStyle-CssClass="FormContentBox" /> <asp:BoundField HeaderText="Username" ReadOnly="true" DataField="username" HeaderStyle-CssClass="FormDesciptionBox" ItemStyle-CssClass="FormContentBox" /> <asp:BoundField HeaderText="Band Date" ReadOnly="true" DataField="bandingdate" HeaderStyle-CssClass="FormDesciptionBox" ItemStyle-CssClass="FormContentBox" /> <asp:BoundField HeaderText="Other Offers" ReadOnly="true" DataField="offers" HeaderStyle-CssClass="FormDesciptionBox" ItemStyle-CssClass="FormContentBox" /> </Columns> </asp:GridView>
I want to control some of the data on row bound so have put this in
Now, when I databind like this:Code:Protected Sub grdNonEligible_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdNonEligible.RowDataBound Dim drv As DataRow = CType(e.Row.DataItem, DataRow) If e.Row.RowType = DataControlRowType.DataRow AndAlso drv IsNot Nothing AndAlso grdNonEligible.EditIndex = -1 Then CType(e.Row.FindControl("litname"), Literal).Text = drv("forename") & " " & drv("surname") End If End Sub
I get this error:Code:ds = BServies.getAdvertBids(Request.QueryString("AdID")) If Not ds Is Nothing Then If ds.Tables(0).Rows.Count > 0 Then Bidders.DataSource = ds.Tables(0).Select("eligible=1") Bidders.DataBind() grdNonEligible.DataSource = ds.Tables(0).Select("eligible=0") grdNonEligible.DataBind() Else Bids.Visible = False BidsNon.Visible = False NoBidsMade.Visible = True End If Else Bids.Visible = False BidsNon.Visible = False NoBidsMade.Visible = True End If
DataBinding: 'System.Data.DataRow' does not contain a property with the name 'BidID'.
Even though this field is part of my data.
If I take away the select filtering, I then get this error on rowdatabound
Unable to cast object of type 'System.Data.DataRowView' to type 'System.Data.DataRow'.
Help please


Reply With Quote

