By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,837 Members | 1,766 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,837 IT Pros & Developers. It's quick & easy.

GridView - Retrieve invisible column information

P: n/a
Mel
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:

gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Jul 25 '07 #1
Share this Question
Share on Google+
9 Replies


P: n/a
If they're always going to be invisible, as such, you can't access them
during run-time.
to get around that, you can copy the labels or textboxes from the invisible
columns into visible columns, making the labels/textboxes invisible - then,
you can programmatically use the FindControl method in that particular row,
to find you data to validate against.

--
David Wier
MVP/ASPInsider
http://aspnet101.com
http://iWritePro.com

"Mel" <ML********@gmail.comwrote in message
news:11**********************@o61g2000hsh.googlegr oups.com...
>I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:

gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Jul 25 '07 #2

P: n/a
Mel
On Jul 25, 2:15 pm, "David Wier" <davidw...@davidwier.nospam.com>
wrote:
If they're always going to be invisible, as such, you can't access them
during run-time.
to get around that, you can copy the labels or textboxes from the invisible
columns into visible columns, making the labels/textboxes invisible - then,
you can programmatically use the FindControl method in that particular row,
to find you data to validate against.

--
David Wier
MVP/ASPInsiderhttp://aspnet101.comhttp://iWritePro.com

"Mel" <MLights...@gmail.comwrote in message

news:11**********************@o61g2000hsh.googlegr oups.com...
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:
gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.
Yuck, but I'll try anything at this point. So maybe I could add an
invisible drop-down box that is bound to the same AccessDataSource
that my GridView uses... Hmmm. I'll give it a whirl.
Thanks.

Jul 25 '07 #3

P: n/a
Server controls with Visible=false don't render to client and don't come
back on postbacks. A simple work around is to leave Visible=true and hide
the controls with css rule display:none.

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
"Mel" <ML********@gmail.comwrote in message
news:11**********************@o61g2000hsh.googlegr oups.com...
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:

gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Jul 25 '07 #4

P: n/a
Mel,

It looks like your three column are the keys for the grid - you could
utilize built in functionality - DataKeyNames property (comma separated) -
and do not have to create columns for them.
then on the postback you can use DataKeys[e.RowIndex] - it will return your
three values

"Mel" wrote:
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:

gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Jul 26 '07 #5

P: n/a
Mel
On Jul 25, 5:57 pm, "Eliyahu Goldin"
<REMOVEALLCAPITALSeEgGoldD...@mMvVpPsS.orgwrote:
Server controls with Visible=false don't render to client and don't come
back on postbacks. A simple work around is to leave Visible=true and hide
the controls with css rule display:none.

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]http://msmvps.com/blogs/egoldin

"Mel" <MLights...@gmail.comwrote in message

news:11**********************@o61g2000hsh.googlegr oups.com...
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:
gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.
Do you have an example of how to implement the display:none CSS rule?
I attempted it yesterday and I didn't see any difference; the columns
were still visible.

Mel
(Using Visual Studio 2005, Asp.net 2.0, Visual Basic, WinXP Pro SP2)

Jul 26 '07 #6

P: n/a
Sure, somethink like

<asp:BoundColumn DataField="MyField" >
<ItemStyle CssClass="Invisible"></ItemStyle>
<HeaderStyle CssClass="Invisible"></HeaderStyle>
</asp:BoundColumn>

and

..Invisible{display:none}

somewhere in styles.

--
Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net
"Mel" <ML********@gmail.comwrote in message
news:11*********************@e9g2000prf.googlegrou ps.com...
On Jul 25, 5:57 pm, "Eliyahu Goldin"
<REMOVEALLCAPITALSeEgGoldD...@mMvVpPsS.orgwrote:
>Server controls with Visible=false don't render to client and don't come
back on postbacks. A simple work around is to leave Visible=true and hide
the controls with css rule display:none.

--
Eliyahu Goldin,
Software Developer & Consultant
Microsoft MVP [ASP.NET]http://msmvps.com/blogs/egoldin

"Mel" <MLights...@gmail.comwrote in message

news:11**********************@o61g2000hsh.googleg roups.com...
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:
gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Do you have an example of how to implement the display:none CSS rule?
I attempted it yesterday and I didn't see any difference; the columns
were still visible.

Mel
(Using Visual Studio 2005, Asp.net 2.0, Visual Basic, WinXP Pro SP2)

Jul 26 '07 #7

P: n/a
Mel
On Jul 26, 1:02 am, Sergey Poberezovskiy
<SergeyPoberezovs...@discussions.microsoft.comwrot e:
Mel,

It looks like your three column are the keys for the grid - you could
utilize built in functionality - DataKeyNames property (comma separated) -
and do not have to create columns for them.
then on the postback you can use DataKeys[e.RowIndex] - it will return your
three values

"Mel" wrote:
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:
gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.
Okay cool. So now I can retrieve the 3 invisible fields using
DataKeys but how do I retrieve the contents of a Template field text
box (txtLength)? I tried FindControl but it always returns nothing,
maybe I'm using it wrong? The GridView control is in a table which is
on the Content1 section.
Jul 26 '07 #8

P: n/a
Mel
On Jul 26, 9:01 am, Mel <MLights...@gmail.comwrote:
On Jul 26, 1:02 am, Sergey Poberezovskiy

<SergeyPoberezovs...@discussions.microsoft.comwrot e:
Mel,
It looks like your three column are the keys for the grid - you could
utilize built in functionality - DataKeyNames property (comma separated) -
and do not have to create columns for them.
then on the postback you can use DataKeys[e.RowIndex] - it will return your
three values
"Mel" wrote:
I have 10 columns total. 3 of them are invisible. The rest are read-
only BoundFields, 3 of which are editable fields using
TemplateFields. Upon editing, I want to validate what the user enters
against one of those invisible columns. How do I accomplish this?
The code below that I attempted just returns an empty string when I
try to retrieve the invisible column data:
gvParts.Rows(e.RowIndex).Cells(8).Text
Any help would be greatly appreciated.

Okay cool. So now I can retrieve the 3 invisible fields using
DataKeys but how do I retrieve the contents of a Template field text
box (txtLength)? I tried FindControl but it always returns nothing,
maybe I'm using it wrong? The GridView control is in a table which is
on the Content1 section.
I figured it out. THANKS to everyone for your help! I explained what
I did to solve the problem below in case anyone else is interested.

Instead of attempting to retrieve Invisible column data (which doesn't
work upon PostBack) I removed the columns from the DataView and I used
the DataKeys property instead:
gvParts.DataKeys(e.RowIndex).Item("StretchOut")
gvParts.DataKeys(e.RowIndex).Item("NumBends")
gvParts.DataKeys(e.RowIndex).Item("SN")

To retrieve a template field in my GridView control I used the
FindControl method:
Dim txtLengthBox As TextBox =
gvParts.Rows(e.RowIndex).Cells(7).FindControl("txt Length")

The Entire Code is here:
Protected Sub gvParts_RowUpdating(ByVal sender As Object, ByVal e
As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles
gvParts.RowUpdating
Dim txtLengthBox As TextBox =
gvParts.Rows(e.RowIndex).Cells(7).FindControl("txt Length")
Dim CusVal As CustomValidator =
gvParts.Rows(e.RowIndex).Cells(7).FindControl("cvL ength")
If Trim(txtLengthBox.Text) <"120" And
gvParts.DataKeys(e.RowIndex).Item("StretchOut") = "48" And
gvParts.DataKeys(e.RowIndex).Item("NumBends") = "0" Then
'Do not allow the user to change the length of a sheet of
material. Sheets are always 120 inches in length.
CusVal.IsValid = False
txtLengthBox.Text = e.OldValues("Length")
e.NewValues("Length") = e.OldValues("Length")
Else
End If
End Sub

Jul 26 '07 #9

P: n/a
<asp:GridView ID="View_Applicants" runat="server"
AutoGenerateColumns="False" CellPadding="4" Font-Size="12pt"
ForeColor="#333333" GridLines="None" Width="360px">
<Columns>
<asp:BoundField DataField="Applicant_LName"
HeaderText="Last Name" />
<asp:BoundField DataField="Applicant_FName"
HeaderText="First Name" />
<asp:BoundField DataField="Applicant_Email"
HeaderText="Email" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True"
ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White"
HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True"
ForeColor="#333333" />
<HeaderStyle BackColor="#FF8000" Font-Bold="True"
ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775"
/>
</asp:GridView>

*** Sent via Developersdex http://www.developersdex.com ***
Aug 9 '07 #10

This discussion thread is closed

Replies have been disabled for this discussion.