472,146 Members | 1,208 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,146 software developers and data experts.

Gridview row databound event - can't get past the 1st row of gridview

Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.

I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.

If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.

I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.

---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>

---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If

Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.

Thanks much for any assistance!

Mike

Oct 12 '06 #1
5 25148
Maurban,

I would switch out of RowDataBound mode and use the RowCreated
method...when switching between EditItemIndex values, the data is not
re-bound therefore your RowDataBound event will not fire. Here's what
my solution would be:

1) Leave all your databound code intact, and add an additional event
handler to the gridview for "RowCreated".

2) Insert the following code (c#)

if(e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList list =
(DropDownList)e.Row.Cells[x].FindControl("myDropDown");
myList.Items.Insert(0, new ListItem("defaultValue", "Select"));
}

Let us know how it goes!

-Brenton
ma*****@gmail.com wrote:
Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.

I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.

If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.

I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.

---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>

---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If

Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.

Thanks much for any assistance!

Mike
Oct 12 '06 #2
Maurban,

I just thought of something else.

You have your datasource being bound to a function call. Be sure it
doesn't bind over every post. Make sure that function checks for
Page.IsPostBack.

Good luck.

-Brenton
ma*****@gmail.com wrote:
Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.

I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.

If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.

I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.

---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>

---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If

Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.

Thanks much for any assistance!

Mike
Oct 12 '06 #3
Brenton -- thanks sir, I'll give it a go and let you know.

Mike

Superman wrote:
Maurban,

I just thought of something else.

You have your datasource being bound to a function call. Be sure it
doesn't bind over every post. Make sure that function checks for
Page.IsPostBack.

Good luck.

-Brenton
ma*****@gmail.com wrote:
Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.

I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.

If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.

I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.

---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>

---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If

Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.

Thanks much for any assistance!

Mike
Oct 12 '06 #4
Well, this is still a no-go... Adding this code to the rowcreated event
has no effect on the gridview.

My original code is works for the first row of the gridview. I think I
just need to figure out how to make it acknowlege rows 2 +.

When I click the edit button for rows 2 +, there is no effect on the
rowdatabound event (or rowcreated event)

Any other ideas?

Thanks!
ma*****@gmail.com wrote:
Brenton -- thanks sir, I'll give it a go and let you know.

Mike

Superman wrote:
Maurban,

I just thought of something else.

You have your datasource being bound to a function call. Be sure it
doesn't bind over every post. Make sure that function checks for
Page.IsPostBack.

Good luck.

-Brenton
ma*****@gmail.com wrote:
Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.
>
I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.
>
If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.
>
I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.
>
---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>
>
---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound
>
If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If
>
Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.
>
Thanks much for any assistance!
>
Mike
Oct 13 '06 #5
I figured out the solution:

If ((e.Row.RowState = (DataControlRowState.Edit Or _
DataControlRowState.Alternate)) Or _
(e.Row.RowState = DataControlRowState.Edit)) Then

bla bla

end if

Works great!! Hopefully this will help someone else out there.

ma*****@gmail.com wrote:
Well, this is still a no-go... Adding this code to the rowcreated event
has no effect on the gridview.

My original code is works for the first row of the gridview. I think I
just need to figure out how to make it acknowlege rows 2 +.

When I click the edit button for rows 2 +, there is no effect on the
rowdatabound event (or rowcreated event)

Any other ideas?

Thanks!
ma*****@gmail.com wrote:
Brenton -- thanks sir, I'll give it a go and let you know.

Mike

Superman wrote:
Maurban,
>
I just thought of something else.
>
You have your datasource being bound to a function call. Be sure it
doesn't bind over every post. Make sure that function checks for
Page.IsPostBack.
>
Good luck.
>
-Brenton
>
>
ma*****@gmail.com wrote:
Hi there experts,
I have a gridview with a couple textboxes and a dropdownlist. I'm
trying to insert a default value into my database driven dropdownlist.

I'm doing this in the rowdatabound event. My problem is that my code
only works for the very first row in the gridview. For the first row,
when I press "edit", my gridview goes to edit mode, my textboxes and
dropdownlist populate. Further, my dropdownlist has the "Select" I
forced in as its default value.

If I try the 2nd row in my gridview, the dropdownlist populates,
however doesn't trigger the row databound command of inserting a
default value.

I tried going the "for each gridview row approach", and that just loops
for the number of rows I have. If I have two rows, it inserts the
default value "Select" twice in the dropdownlist for the first row
only. It still doesn't recognize any other row.

---- ASPX snippet ----
<EditItemTemplate>
<asp:dropdownlist ID="ddlUpdate_UserTypeID"
datavaluefield="user_type_id" datatextfield="user_type_desc"
DataSource='<%# Bind_ddlUserType() %>' Runat="server" />
</EditItemTemplate>

---- Code Behind snippet----
Sub gvUsers_rowDataBound(ByVal sender As Object, ByVal e As
GridViewRowEventArgs) _
Handles gvUsers.RowDataBound

If e.Row.RowType = DataControlRowType.DataRow And _
e.Row.RowState = DataControlRowState.Edit Then
Dim user_id As String = e.Row.Cells(0).Text
CType(e.Row.FindControl("ddlUpdate_UserTypeID"),
DropDownList).Items.Insert(0, New ListItem("Select"))
End If

Please let me know if you require more detail. I've been spinning my
wheels on this for sometime now.

Thanks much for any assistance!

Mike
Oct 13 '06 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Jim Katz | last post: by
4 posts views Thread by | last post: by
5 posts views Thread by sutphinwb | last post: by
2 posts views Thread by nolan | last post: by
5 posts views Thread by =?Utf-8?B?QWRhciBXZXNsZXk=?= | last post: by
1 post views Thread by =?Utf-8?B?V2VzbGV5IERhdmlzLCBHZW5lcmFsIER5bmFtaWNz | last post: by
10 posts views Thread by =?Utf-8?B?bWljaGFlbCBzb3JlbnM=?= | last post: by
4 posts views Thread by Craig Buchanan | last post: by
reply views Thread by Saiars | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.