FindControl errore

lunedì 16 febbraio 2009 - 14.31

patrizia84 Profilo | Junior Member

Ciao..
Ho una masterpage e una pagina content.
Nella pagina content ho un hyperlink che voglio gestire lato server e devo gestirlo tramite FindControl.
Purtroppo il codice mi restituisce sempre che il link non esiste.
Vi posto un po’ di codice cosi vi spiego meglio.



Pagina aspx

<div class="subItem" ><div class="subItem_atext"><asp:HyperLink ID="h2" runat="server" Text="valutazione di impatto acustico"></asp:HyperLink></div></div>

Pagina aspx.cs

HyperLink link = new HyperLink();
link = (HyperLink)this.Page.FindControl("h2");


Il codice mi sembra corretto..
Potete darmi un consiglio..grazie..

rossimarko Profilo | Guru

Ciao,

il controllo è inserito nel body della pagina o è annidati in un altro controllo web?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

patrizia84 Profilo | Junior Member

Ciao..
hyperlink è dentro un altro div dentro il Content.
Utilizzo il Theme="Theme1" per la grafica e dopo ho dovuto inserire anche un collegamento ad un altro file css esterno al Theme="Theme1".
Potrebbe essere che crea dei problemi?

rossimarko Profilo | Guru

prova a postare tutto il codice aspx della pagina e della eventuale master che controlliamo..
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

patrizia84 Profilo | Junior Member

grazie..ok...questa è la pagina master (un pò semplificata)

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage_MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>DBA Gruop</title>
<link rel="stylesheet" type="text/css" href="../menu_dhtml/sddm.css" />

</head>
<body>
<form id="form_master" runat="server">

<div id="page">

<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder>

</div>


</form>
</body>
</html>



questa e la pagina content:

<%@ Page Language="C#" Theme="Theme1" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="servizi.aspx.cs" Inherits="servizi_servizi" Title="" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="contenitoreN">
<div id="contenutoLinkNoHome">

<div class="navbar">
<div class="mainDiv">
<div class="topItem"><a href="servizi.aspx">ANALISI DI IMPATTO ELETTROMEGNETICO</a></div>
<div class="dropMenu">
<div class="subMenu">
<div class="subItem"><div class="subItem_atext"><asp:HyperLink runat="server" ID="h1" Text="valutazione di impatto elettromagnetico" ></asp:HyperLink></div></div>
</div>
</div>
</div>



</div>
</div>


Te le ho semplificate un pò..
Devo impostare i navigateUrl agli hyperlink da lato server.
Sto provando anche a impostarli dall'evento onLoad.

rossimarko Profilo | Guru

Da quello che vedo mi sembra tutto regolare. Però la cosa strana è che tu debba accedere ai controlli con Page.FindControl. In teoria i controlli dovrebbero essere dichiari automaticamente come variabili della classe page, quindi prendendo spunto dal codice che hai mandato tu dovresti riuscire ad accedere alle proprietà semplicemente scrivendo:

h1.NavigateUrl ="";

nel page_load o i in qualsiasi altro evento..
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

patrizia84 Profilo | Junior Member

Devo accedere con Page.FindControl per impostare ad ogni hyperlink navigateurl con dei parametri che devo prendere dal databse..
Risolvo gestendo ogni load degli hyperlink..
Grazie lo stesso per i consigli e la disponibilità..

rossimarko Profilo | Guru

Ma quindi sei riuscita ad accedere ai controlli?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

patrizia84 Profilo | Junior Member

Riesco ad accedere ai controllo facendo come mi hai detto tu..


h1.NavigateUrl

rossimarko Profilo | Guru

Ok perfetto. Puoi accettare una risposta così il thread viene chiuso?

Grazie!
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5