Tesla Posted July 23, 2012 at 10:56 PM Report Share #469862 Posted July 23, 2012 at 10:56 PM (edited) Olá pessoal. Estou a iniciar um projecto e comecei logo a dar cabeçadas. Estou a usar o visual studio 2010 e estou a tentar fazer um site que vai produzir informação a partir de uma base de dados em XML que é carregada por outra aplicação. Começo a fazer o site e vou directo ao menu. Da forma como a estrutura do XML está feita, posso recolher os valores únicos de um dos sub-elementos e compor o menu de navegação com isso. Assim sendo, a criação do NavigationMenu foi muito fácil. Criação da XmlDataSource, chapar lá para dentro o ficheiro com os dados e XPath corresponde e voilá. So far so good... pensei eu! Começo a tratar da página com o Main Content Holder e necessito de ir buscar um gridview para apresentar um determinado set de informação que está no ficheiro XML já referido acima. Porreiro. Começo a criar a gridview, manda-me logo criar a DataSource e quando a acabo de criar, com o ficheiro XML e com o XPath que eu entendo adequado... NADA! Não me aparecem dados na Gridview! Já estou de volta disto há umas horas e até já coloquei na Gridview a mesma receita que coloquei no menu de navegação... e nada... não me saiem dados! Não sei o que fazer... Edited July 24, 2012 at 08:17 AM by Caça Assinatura editada pelo staff, por favor consulte as regras. Link to comment Share on other sites More sharing options...
DarkAngelRev Posted July 25, 2012 at 12:41 AM Report Share #470175 Posted July 25, 2012 at 12:41 AM boas. podes por algum código? é que senão vai ser mais difícil. Link to comment Share on other sites More sharing options...
Tesla Posted July 26, 2012 at 05:31 PM Author Report Share #470467 Posted July 26, 2012 at 05:31 PM Boas. Já resolvi o problema. Mas agora encontrei outro. Acontece que preciso que o XSLT faça a transformação tendo input da data corrente. Fiz um script em C# que me cria esse dado e o coloca no for-each. Se correr o XSLT contra o XML dentro do visual studio, tudo sai bem. No entanto na página onde ele deve ser apresentado (através de um gridview) primeiro dei-me um erro de CAS policy que resolvi, mas depois voltou a dar um outro que diz apenas "Execution permission cannot be acquired". Código: ... <msxsl:script language="C#" implements-prefix="user"> <![CDATA[ public string data() { string data = DateTime.UtcNow.ToShortDateString(); string[] data1 = Regex.Split(data,"-"); data = data1[2]+"-"+data1[1]+"-"+data1[0]; return data; } ]]> </msxsl:script> <xsl:output method="xml" indent="yes" encoding="iso-8859-15"/> <!--Criacao da raiz do documento--> <xsl:template match="/"> <artigos> <xsl:for-each select="artigos/artigo[rating < 40][data=user:data()]"> ... Assinatura editada pelo staff, por favor consulte as regras. Link to comment Share on other sites More sharing options...
Tesla Posted July 29, 2012 at 06:07 PM Author Report Share #470868 Posted July 29, 2012 at 06:07 PM (edited) Boas. Pronto, acabei por dar a volta ao problema adoptando outra abordagem. Como o site vai ter uma ferramenta por trás a recolher dados, o que fiz foi colocar no XSLT um parametro que recolhe a ultima data registada na base de dados e usa-a para processar o resto. Bom, agora tenho outro problema. No menu de navegação a partir dum XML (que foi definido como estático, porque vai ser sempre igual em todas as páginas), queria que cada um dos links deste menu fosse produzido da seguinte forma: Opção = Pastor ; Link = caracteristica.aspx?caract=Pastor Opção = Agricultor ; Link = caracteristica.aspx?caract=Agricultor Opção = Apicultor ; Link = caracteristica.aspx?caract=Apicultor Não consigo encontrar solução para isto. Alguém pode? ;-) Edited July 29, 2012 at 06:08 PM by Tesla Assinatura editada pelo staff, por favor consulte as regras. Link to comment Share on other sites More sharing options...
Tesla Posted July 29, 2012 at 09:05 PM Author Report Share #470881 Posted July 29, 2012 at 09:05 PM Resolvido. Bastou introduzir código na página onde está o menu. protected void Page_Load(object sender, EventArgs e) { NavigationMenu.MenuItemDataBound += new MenuEventHandler(NavigationMenu_MenuItemDataBound); } void NavigationMenu_MenuItemDataBound(object sender, MenuEventArgs e) { //throw new NotImplementedException(); for (int i = 0; i < NavigationMenu.Items.Count; i++) { NavigationMenu.Items[i].NavigateUrl = "~/caracteristica.aspx?caract=" + NavigationMenu.Items[i].Text.ToString(); } } Assinatura editada pelo staff, por favor consulte as regras. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now