Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

[Resolvido] Carregar html num div

Recommended Posts

Galera é o seguinte:

Eu tenho uma pagina com um gridview que mostra somente os títulos que são links enviados por GET que abre a mesma página, porém, esconde o grid e motra um panel com o conteudo do id enviado por get.

 

Eu to tentando fazer dessa forma:

<asp:Panel ID="dlCurso" runat="server" width="100%" Visible="false">

<div class="toBack">

<asp:ImageButton ID="send1" runat="server" ImageUrl="Images/email.gif" AlternateText="Enviar Link por E-mail" OnClick="OpenInscricao"/>

<a href="Cursos.aspx">Voltar <img src="Images/Undo.png" border="0" /></a>

</div>

<div id="folder" runat="server"></div>

<div class="toBack">

<asp:ImageButton ID="send2" runat="server" ImageUrl="Images/email.gif" AlternateText="Enviar Link por E-mail" OnClick="OpenInscricao"/>

<a href="Cursos.aspx">Voltar <img src="Images/Undo.png" border="0" /></a>

</div>

</asp:Panel>

 

 

<asp:GridView ID="grdEventos" DataSourceID="dsEventos" DataKeyNames="idEvento"

AutoGenerateColumns="False" CssClass="grid" runat="server" width="95%"

GridLines="Horizontal" CellPadding="3" BorderWidth="1" BackColor="#4D8EDC" Visible="true">

<Columns>

<asp:HyperLinkField DataTextField="titulo" DataNavigateUrlFields="idEvento"

DataNavigateUrlFormatString="~/Cursos.aspx?id={0}" HeaderText="Título"/>

</Columns>

 

<EmptyDataTemplate>

Nenhum Evento Localizado!

</EmptyDataTemplate>

 

<RowStyle ForeColor="#4D8EDC" BackColor="white" Font-Names="Verdana, Tahoma, Helvetica, Sans-Serif" Font-Size="10px"/>

<HeaderStyle BackColor="#4D8EDC" Font-Bold="True" ForeColor="White"

HorizontalAlign="Center" Font-Names="Verdana, Tahoma, Helvetica, Sans-Serif" Font-Size="10px"/>

</asp:GridView>

 

<asp:ObjectDataSource id="dsEventos" TypeName="Jairo.Eventos" Runat="server" SelectMethod="Select">

<SelectParameters>

<asp:Parameter Name="tipoEvento" DefaultValue="2" Type="Int16" />

</SelectParameters>

</asp:ObjectDataSource>

no code-behind

 

protected void Page_Load(object sender, EventArgs e)

{

if(Request.QueryString["id"] != null)

{

grdEventos.Visible = false;

dlCurso.Visible = true;

List<Jairo.Eventos> results = Jairo.Eventos.SelectById(Convert.ToInt32(Request.QueryString["id"].ToString()));

 

FileInfo info;

string arquivo;

folder.InnerHtml=

arquivo = "e:/home/jairodepaula/Folders/" + results[0].folder;

info = new FileInfo(arquivo);

StreamReader reader = new StreamReader(arquivo);

string _folder = reader.ReadToEnd();

 

folder.InnerHtml = _folder;

reader.Close();

reader.Dispose();

}

}

Ta funcionado ou seja, na tabela só tem o nome do arquivo a ser mostrado no div folder mas tudo que tem acento ou cedilha, ta vindo trocado.

 

Já to usando:

<globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" culture="pt-br"/>

o resultado é: Introdu??o (quer seria introdução)

 

 

Já tentei tambem com

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" />

o resultado é: Introdu��o

 

Alguem tem alguma sugestão, pois não tenho outra forma de abrir o arquivo html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia,

 

O que ocorre é que o querystring não suporta caracteres especiais.

Para solucionar o problema você pode utilizar o seguinte cara: Server.UrlDecode

 

Ex.:

CODE
List<Jairo.Eventos> results = Jairo.Eventos.SelectById(Convert.ToInt32(Server.UrlDecode(Request.QueryString["id"].ToString())));

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Roberto, o problema não é o QueryString, nele so vai o ID do registro que é recuperado.

so recapitulando:

grdEventos.Visible = false; // esconde grid onde o usuario seleciona o registro.
dlCurso.Visible = true;  // habilita um asp:panel

// cria var eventos e recupera o registro através do class Eventos.css.
[b]List<Jairo.Eventos> results = Jairo.Eventos.SelectById(Convert.ToInt32(Request.QueryString["id"].ToString()));

FileInfo info;  // cria var tipo informaçoes de arquivo
string arquivo = Server.MapPath("../Folders/" + results[0].folder); // cria o path do arquivo
			info = new FileInfo(arquivo);  
			StreamReader reader = new StreamReader(arquivo);  // Abre o arquivo para leitura
			string _folder = reader.ReadToEnd();  // Lê todo o arquivo html
			
			folder.InnerHtml = _folder;  // atribui ao div no panel dlCurso
			reader.Close();  // fecha
			reader.Dispose();  // libera memoria.[/b]

Acontece igual acontecia quando eu tentava acessar pelo ajax  no php, só la no php eu colocava no inicio do aquivo os headers:
header("Content-type: text/html; charset=iso-8859-1");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
e isso resolvia todo esse problema mas e aqui no aspx ?

 

 

Oi sublyer, Eu dei uma lida rápida no post mas ali parece que tá relacionado a formatação de datas e teclado. É alguma coisa relacionada à renderização tal qual acontece com o ajax. Eu percebi que se no arquivo o ã estiver como ã ele renderiza normal. Eu tentei forçar isso antes de atribuir ao div com o Replace mas não surtiu efeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido:

 

Dim SR As New IO.StreamReader(pathfile, System.Text.Encoding.Default) ou seja colocar o Defalt na hora que criar a var tipo streamRreader

 

ficou assim o codigo:

if(Request.QueryString["id"] != null)

{

grdEventos.Visible = false;

dlCurso.Visible = true;

List<Jairo.Eventos> results = Jairo.Eventos.SelectById(Convert.ToInt32(Request.QueryString["id"].ToString()));

 

FileInfo info;

string arquivo=null;

 

if (HttpContext.Current.Request.UserHostAddress.ToString() != "127.0.0.1")

arquivo = Server.MapPath("../Folders/" + results[0].folder);

else

arquivo = "e://home/jairodepaula/Folders/" + results[0].folder;

info = new FileInfo(arquivo);

StreamReader reader = new StreamReader(arquivo, System.Text.Encoding.Default);

string _folder = reader.ReadToEnd();

 

folder.InnerHtml = _folder;

reader.Close();

reader.Dispose();

}

E voalá:

 

antes:

Uma marca chamada "Voc�"

Palestra Motivacional para Empresas

 

P�blico alvo:

Diretores, Gerentes, Profissionais Liberais.

 

Como contornar situa��es dif�ceis em

sala-de-aula

Palestra T�cnica & Motivacional para Professores

 

 

 

depois:

Uma marca chamada "Você"

Palestra Motivacional para Empresas

 

Público alvo:

Diretores, Gerentes, Profissionais Liberais.

 

Como contornar situações difíceis em

sala-de-aula

Palestra Técnica & Motivacional para Professores

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.