Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / August 2007

Tip: Looking for answers? Try searching our database.

GridView - Retrieve invisible column information

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Mel - 25 Jul 2007 19:56 GMT
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.
David Wier - 25 Jul 2007 20:15 GMT
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.

Signature

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

>I have 10 columns total.  3 of them are invisible.  The rest are read-
> only BoundFields, 3 of which are editable fields using
[quoted text clipped - 6 lines]
>
> Any help would be greatly appreciated.
Mel - 25 Jul 2007 20:43 GMT
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.
[quoted text clipped - 17 lines]
>
> > 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.
Eliyahu Goldin - 25 Jul 2007 22:56 GMT
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.

Signature

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

> I have 10 columns total.  3 of them are invisible.  The rest are read-
> only BoundFields, 3 of which are editable fields using
[quoted text clipped - 6 lines]
>
> Any help would be greatly appreciated.
Mel - 26 Jul 2007 13:38 GMT
On Jul 25, 5:57 pm, "Eliyahu Goldin"
<REMOVEALLCAPITALSeEgGoldD...@mMvVpPsS.org> wrote:
> 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
[quoted text clipped - 15 lines]
>
> > 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)
Eliyahu Goldin - 26 Jul 2007 14:28 GMT
Sure, somethink like

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

and

.Invisible{display:none}

somewhere in styles.

Signature

Eliyahu Goldin,
Software Developer
Microsoft MVP [ASP.NET]
http://msmvps.com/blogs/egoldin
http://usableasp.net

> On Jul 25, 5:57 pm, "Eliyahu Goldin"
> <REMOVEALLCAPITALSeEgGoldD...@mMvVpPsS.org> wrote:
[quoted text clipped - 24 lines]
> Mel
> (Using Visual Studio 2005, Asp.net 2.0, Visual Basic, WinXP Pro SP2)
Sergey Poberezovskiy - 26 Jul 2007 07:02 GMT
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

> I have 10 columns total.  3 of them are invisible.  The rest are read-
> only BoundFields, 3 of which are editable fields using
[quoted text clipped - 6 lines]
>
> Any help would be greatly appreciated.
Mel - 26 Jul 2007 15:01 GMT
On Jul 26, 1:02 am, Sergey Poberezovskiy
<SergeyPoberezovs...@discussions.microsoft.com> wrote:
> Mel,
>
[quoted text clipped - 14 lines]
>
> > 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.
Mel - 26 Jul 2007 17:06 GMT
> On Jul 26, 1:02 am, Sergey Poberezovskiy
>
[quoted text clipped - 23 lines]
> 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("txtLength")

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("txtLength")
       Dim CusVal As CustomValidator =
gvParts.Rows(e.RowIndex).Cells(7).FindControl("cvLength")
       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
Hardeep Kaur - 09 Aug 2007 16:04 GMT
<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>

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.