.NETGURU
Panel in ItemTemplate
Messages   Related Types
This message was discovered on ASPFriends.com 'aspngnl' list.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.

Fredje
Hallo,

Ik wens een Panel te gebruiken in een ItemTemplate maar vanuit de code
kan ik dit niet aanroepen. Kan mij iemand vertellen of dit mogelijk is
en zo ja hoe kan ik dan bijvoorbeeld dit panel op invisible zetten.

Hartelijk dank

<asp:TemplateColumn>
    <ItemTemplate>
        <TABLE>
            <TR>
                <TD>Naam:</TD>
                <TD><%#
DataBinder.Eval(Container.DataItem, "Naam") %></TD>
            </TR>
            <TR>
                <TD>Straat:</TD>
                <TD><%#
DataBinder.Eval(Container.DataItem, "Straat") %></TD>
            </TR>
            <TR>
                <TD>Stad:</TD>
                <TD><%#
DataBinder.Eval(Container.DataItem, "Stad" ) %></TD>
            </TR>
            <TR>
                <TD>Tel:</TD>
                <TD><%#
DataBinder.Eval(Container.DataItem, "Tel") %></TD>
            </TR>
            <TR>
                <TD>Fax:</TD>
                <TD><%#
DataBinder.Eval(Container.DataItem, "Fax" ) %></TD>
            </TR>
            <asp:Panel id="GolfclubPanelView"
runat="server">
                <TR>
                    <TD>Aantal holes:</TD>
                    <TD><%#
DataBinder.Eval(Container.DataItem, "aantalHoles" ) %></TD>
                </TR>
            </asp:Panel>

...

Reply to this message...
 
    
Michiel van Otegem
Als je in een template een control zet, dan onstaat er een namingsprobleem.
Iedere control moet een unieke naam hebben, hetgeen met een template een
probleem oplevert, omdat deze meerdere keren herhaald wordt. De ID die je
dus in de template geeft wordt niet gehandhaafd. Kijk eerst eens naar de
uiteindelijke HTML om te achterhalen hoe de naamgevind werkt. Eventueel kun
je vervolgens via FindControl bepaalde controls binnen de template control
opzoeken.

---
Michiel van Otegem
ASPFriends.com Moderation Team

ASPNL.com - ASP/ASP.NET/XML Teacher
http://www.aspnl.com
http://www.aspalliance.com/michiel
---
Teach Yourself XSLT in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Monday, June 24, 2002 5:50 PM
Subject: [aspngnl] Panel in ItemTemplate

[Original message clipped]

Reply to this message...
 
    
Fredje
OK,

Dit begrijp ik. Weet u dan een andere oplossing om bepaalde velden in
een ItemTemplate te verbergen en te tonen?

Hartelijk dank.

-----Oorspronkelijk bericht-----
Van: Michiel van Otegem [mailto:Click here to reveal e-mail address]
Verzonden: maandag 24 juni 2002 21:55
Aan: aspngnl
Onderwerp: [aspngnl] Re: Panel in ItemTemplate

Als je in een template een control zet, dan onstaat er een
namingsprobleem. Iedere control moet een unieke naam hebben, hetgeen met
een template een probleem oplevert, omdat deze meerdere keren herhaald
wordt. De ID die je dus in de template geeft wordt niet gehandhaafd.
Kijk eerst eens naar de uiteindelijke HTML om te achterhalen hoe de
naamgevind werkt. Eventueel kun je vervolgens via FindControl bepaalde
controls binnen de template control opzoeken.

---
Michiel van Otegem
ASPFriends.com Moderation Team

ASPNL.com - ASP/ASP.NET/XML Teacher
http://www.aspnl.com
http://www.aspalliance.com/michiel
---
Teach Yourself XSLT in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Monday, June 24, 2002 5:50 PM
Subject: [aspngnl] Panel in ItemTemplate

[Original message clipped]

| [aspngnl] member Click here to reveal e-mail address = YOUR ID
| http://www.asplists.com/asplists/aspngnl.asp = JOIN/QUIT

Reply to this message...
 
    
Yannick Smits
De meest nette manier (maar in het begin wel even verwarrend is als volgt:
Voeg aan je <asp:datagrid het volgende toe:
OnItemDataBound="DataGrid1_ItemDataBound"

Voeg de volgende methode toe aan je code:
void DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView items = (DataRowView)e.Item.DataItem;
if (Convert.ToInt32(items["aantalHoles"]) == 0)
e.Item.FindControl("GolfclubPanelView").Visible = false;
}
}

Succes,
Yannick Smits

"Fredje" <Click here to reveal e-mail address> wrote in message news:674709@aspngnl...
[Original message clipped]

Reply to this message...
 
    
Michiel van Otegem
Hangt er vanaf...
Als je dit wil vanuit gebeurtenis van een control die in het panel staat,
dan is het wel mogelijk. Je kunt namelijk aan de hand van de Parent
eigenschap de parent control oproepen. In het geval van een Panel kun je die
dus gebruiken met alle childcontrols. Als het alleen in dezelfde template
gebeurt (niet in de panel), wordt het lastiger, hoewel je dan waarschijnlijk
eerst een niveau omhoog kan (de template zelf) en dan op zoek kan gaan naar
een control van het type Panel. Niet geweldig mooi, maar het werkt wel.

---
Michiel van Otegem
ASPFriends.com Moderation Team

ASPNL.com - ASP/ASP.NET/XML Teacher
http://www.aspnl.com
http://www.aspalliance.com/michiel
---
Teach Yourself XSLT in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Tuesday, June 25, 2002 11:00 AM
Subject: [aspngnl] Re: Panel in ItemTemplate

[Original message clipped]

Reply to this message...
 
    
Fredje
Hallo,

Dit heb ik geprobeerd maar werkt niet. Ik werk wel in VB.NET dus heb ik
de sub moeten omzetten. Hoop dat ik hier geen fouten in gemaakt heb?

Sub DataGrid_ItemDataBound(ByVal Sender As Object, ByVal E As
DataGridItemEventArgs)
If ((E.Item.ItemType = ListItemType.Item) And (E.Item.ItemType =
ListItemType.AlternatingItem)) Then
Dim items As DataRowView = E.Item.DataItem

Trace.Write(Convert.ToInt32(items("aantalHoles")))

If (Convert.ToInt32(items("aantalHoles")) = 0) Then
E.Item.FindControl("GolfclubPanelView").Visible = False
End If
End If
End Sub

-----Oorspronkelijk bericht-----
Van: Yannick Smits [mailto:Click here to reveal e-mail address]
Verzonden: dinsdag 25 juni 2002 11:21
Aan: aspngnl
Onderwerp: [aspngnl] Re: Panel in ItemTemplate

De meest nette manier (maar in het begin wel even verwarrend is als
volgt: Voeg aan je <asp:datagrid het volgende toe:
OnItemDataBound="DataGrid1_ItemDataBound"

Voeg de volgende methode toe aan je code:
void DataGrid1_ItemDataBound(Object sender, DataGridItemEventArgs e) {
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView items = (DataRowView)e.Item.DataItem;
if (Convert.ToInt32(items["aantalHoles"]) == 0)
e.Item.FindControl("GolfclubPanelView").Visible =
false;
}
}

Succes,
Yannick Smits

"Fredje" <Click here to reveal e-mail address> wrote in message news:674709@aspngnl...
[Original message clipped]

| [aspngnl] member Click here to reveal e-mail address = YOUR ID
| http://www.asplists.com/asplists/aspngnl.asp = JOIN/QUIT

Reply to this message...
 
    
Fredje
Hallo,

Begrijp wel wat u bedoelt maar om van hier uit dit in code te zetten.
Kan ik niet direct. Zou u kunnen een voorbeeldje of zo geven?

Hartelijk bedankt

-----Oorspronkelijk bericht-----
Van: Michiel van Otegem [mailto:Click here to reveal e-mail address]
Verzonden: dinsdag 25 juni 2002 11:13
Aan: aspngnl
Onderwerp: [aspngnl] Re: Panel in ItemTemplate

Hangt er vanaf...
Als je dit wil vanuit gebeurtenis van een control die in het panel
staat, dan is het wel mogelijk. Je kunt namelijk aan de hand van de
Parent eigenschap de parent control oproepen. In het geval van een Panel
kun je die dus gebruiken met alle childcontrols. Als het alleen in
dezelfde template gebeurt (niet in de panel), wordt het lastiger, hoewel
je dan waarschijnlijk eerst een niveau omhoog kan (de template zelf) en
dan op zoek kan gaan naar een control van het type Panel. Niet geweldig
mooi, maar het werkt wel.

---
Michiel van Otegem
ASPFriends.com Moderation Team

ASPNL.com - ASP/ASP.NET/XML Teacher
http://www.aspnl.com
http://www.aspalliance.com/michiel
---
Teach Yourself XSLT in 21 Days
http://www.amazon.com/exec/obidos/ASIN/0672323184/aspnlcom-20

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Tuesday, June 25, 2002 11:00 AM
Subject: [aspngnl] Re: Panel in ItemTemplate

[Original message clipped]

| [aspngnl] member Click here to reveal e-mail address = YOUR ID
| http://www.asplists.com/asplists/aspngnl.asp = JOIN/QUIT

Reply to this message...
 
    
Yannick Smits (VIP)
Wat werkt er niet dan? Graag foutmelding ofzo meesturen.
Je hebt ook een aantal foutjes gemaakt, probeer deze eens:

Sub DataGrid1_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then
Dim items As DataRowView = CType(e.Item.DataItem, DataRowView)
If Convert.ToInt32(items("aantalHoles")) = 0 Then
e.Item.FindControl("GolfclubPanelView").Visible = False
End If
End If
End Sub

Succes,
Yannick Smits

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Tuesday, June 25, 2002 12:00 PM
Subject: [aspngnl] Re: Panel in ItemTemplate

[Original message clipped]

Reply to this message...
 
    
Fredje
OK hartelijk bedankt. Dit werkt. Heb wel If
Convert.ToInt32(items("aantalHoles")) = 0 Then vervangen door If
Convert.IsDBNull(items("aantalHoles")) = True Then en nu werkt het.

Maar ik zit ook nog met een panel in mijn EditItemTemplate. Hoe kan ik
deze dan benaderen? Vanuit ItemDataBound lukt het niet?

Hartelijk dank...

-----Oorspronkelijk bericht-----
Van: Yannick Smits [mailto:Click here to reveal e-mail address]
Verzonden: dinsdag 25 juni 2002 12:47
Aan: aspngnl
Onderwerp: [aspngnl] Re: Panel in ItemTemplate

Wat werkt er niet dan? Graag foutmelding ofzo meesturen.
Je hebt ook een aantal foutjes gemaakt, probeer deze eens:

Sub DataGrid1_ItemDataBound(sender As Object, e As
DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType =
ListItemType.AlternatingItem Then
Dim items As DataRowView = CType(e.Item.DataItem, DataRowView)
If Convert.ToInt32(items("aantalHoles")) = 0 Then
e.Item.FindControl("GolfclubPanelView").Visible = False
End If
End If
End Sub

Succes,
Yannick Smits

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Tuesday, June 25, 2002 12:00 PM
Subject: [aspngnl] Re: Panel in ItemTemplate

[Original message clipped]

| [aspngnl] member Click here to reveal e-mail address = YOUR ID
| http://www.asplists.com/asplists/aspngnl.asp = JOIN/QUIT

Reply to this message...
 
    
Yannick Smits (VIP)
Uit m'n hoofd kun je dat gewoon in dezelfde methoden doen, maar ipv :
If e.Item.ItemType = ListItemType.Item
Or e.Item.ItemType = ListItemType.AlternatingItem Then
doe je:
If e.Item.ItemType = ListItemType.EditItem Then

Groeten,
Yannick Smits

----- Original Message -----
From: "Fredje" <Click here to reveal e-mail address>
To: "aspngnl" <Click here to reveal e-mail address>
Sent: Tuesday, June 25, 2002 1:36 PM
Subject: [aspngnl] Re: Panel in ItemTemplate

[Original message clipped]

Reply to this message...
 
 
System.ComponentModel.Container
System.Convert
System.Data.DataRowView
System.Diagnostics.Trace
System.Web.UI.DataBinder
System.Web.UI.WebControls.DataGrid
System.Web.UI.WebControls.DataGridItemEventArgs
System.Web.UI.WebControls.ListItemType
System.Web.UI.WebControls.TemplateColumn
System.Windows.Forms.DataGrid




ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
Ad


Need Dot Net Interview Questions?
Ask ExamGuru, Inc. for advice and help on Passing .Net Interviews
.Net Projects
Best-of-breed application framework for .NET projects, developed by ExamGuru, Inc. and ExamGuru IT
Free .net Help
Commission ExamGuru, Inc. and his team for your next bespoke software project
FogBUGZ
The only bug tracking system carefully crafted with one goal in mind: helping teams create great software.
Awesome Tools
If you don't know about these, you're missing out... IT Certification Questions
IT Interview Questions
Free Oracle 10g Training
MCSE Boortcamp
Cisco Study Guides
Cheap Study Guides
Exact Questions
Dot Net Interview Questions
Oracle OCP
Cheap Travel
Designer Perfumes - Wholesale Prices
Free Programming Tutorials
 
ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
 Copyright © ExamGuru, Inc. 2001-2006
Contact Us - Terms of Use - Privacy Policy - www.dot-net-guru.com - www.examguru.net - www.oraclesource.net - www.itinterviews.net - www.examguru.net/ITCertification