none
Problemas com update em textos no fckeditor ou textbox RRS feed

  • Pergunta

  • Olá galera,

    bom estou aqui desenvolvendo um site onde teremos textos que serão apenas alterados pelos moderadores.

    o meu problema é o seguinte...

    Quando clico no link correspondente ao texto que quero alterar ele vai para a página do editor "fckeditor" e
    normalmente carrega o texto.

    ate aí tudo bem, mais quando digito outro texto e clico no botao atualizar ele manda o texto que foi carregado anteriormente
    e novo texto que alterei?

    alguem ai poderia me ajudar, pois ja estou a uns dois dias tentando resolver este problema e ja não faço nem ideia do que pode estar
    acontecendo


    Código da página Editor.aspx
    <%@ Page Language="C#" MasterPageFile="~/adm/ADM.Master" AutoEventWireup="true" CodeBehind="Editor.aspx.cs" Inherits="catequese1.adm.Editor" Title="Untitled Page" %>
    <%@ Register assembly="FredCK.FCKeditorV2" namespace="FredCK.FCKeditorV2" tagprefix="FCKeditorV2" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder3" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                <div class="style1">Aguarde...</div>
            </ProgressTemplate>
        </asp:UpdateProgress>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="saida" runat="server" Font-Bold="True" ForeColor="Red" Text=" " 
                    Font-Size="Medium"></asp:Label>
                <br />
                <br />
                <asp:HiddenField ID="txtId" runat="server" />
                <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" Height="350px" 
                    EnableViewState="true" Value="renato">
                </FCKeditorV2:FCKeditor>
                <br />
                <br />
                <asp:Button ID="Button1" runat="server" Text="Atualizar" 
                    onclick="Button1_Click" />
           </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>
    
    Código da página Editor.aspx.cs
        public partial class Editor : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.QueryString["id"] != null)
                {
                    if (Session["usuario"] != null)
                    {
                        TextosDAO tDao = new TextosDAO();
                        txtId.Value = Request.QueryString["id"];
                        Textos texto = tDao.selecionarTexto(Convert.ToInt32(txtId.Value));
    
    
                        FCKeditor1.Value = HttpUtility.HtmlDecode(texto.Texto);
                    }
                    else
                    {
                        Response.Redirect("../login.aspx");
                    }
                }
                else
                {
                    Response.Redirect("Default.aspx");
                }
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                TextosDAO tDao = new TextosDAO();
                Textos t = new Textos();
                t.Id = Convert.ToInt32(txtId.Value);
                t.Texto = HttpUtility.HtmlEncode(FCKeditor1.Value);
                tDao.alterarTexto(t);
                saida.Text = tDao.getStatus();
    

    Técnico em Desenvolvimento de sistemas
    terça-feira, 11 de agosto de 2009 19:42

Respostas

  • Desculpa pela demora Renato, 

    O problema parece ser "simples".
    O método "Pege_Load" sempre é executado quando vc está clicando no botão e isso está fazendo com que o controle seja atualizado com as informações do BD

    Colocar essa linha de comando na 1a linha do "Page_Load"
    if( !Page.IsPostBack )
    {
    // Seus comandos ficam aqui
    }
    e desta forma apenas quando abrir a página o conteúdo da página será carregado. Ao clicar no botão, os dados serão mantidos para serem salvos.

    Codigo Completo
            protected void Page_Load(object sender, EventArgs e)
            {
                // Nova linha que vc precisaria colocar
                if(!Page.IsPostBack)
                {
                            if (Request.QueryString["id"] != null)
                            {
                                if (Session["usuario"] != null)
                                {
                                    TextosDAO tDao = new TextosDAO();
                                    txtId.Value = Request.QueryString["id"];
                                    Textos texto = tDao.selecionarTexto(Convert.ToInt32(txtId.Value));
    
    
                                    FCKeditor1.Value = HttpUtility.HtmlDecode(texto.Texto);
                    }
                    else
                                {
                                    Response.Redirect("../login.aspx");
                                }
                            }
                            else
                            {
                                Response.Redirect("Default.aspx");
                            }
                } // Final da "Nova linha"
            }
    Espero ter ajudado.
    Qualquer dúvida posta aqui para que possamos te ajudar

    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0
    Se Eu consegui te ajudar, poderia marcar como "Respondido" ? Grato. :)
    • Sugerido como Resposta Rafael F P quarta-feira, 12 de agosto de 2009 09:48
    • Marcado como Resposta Renato Belmiro quarta-feira, 12 de agosto de 2009 13:47
    quarta-feira, 12 de agosto de 2009 09:48

Todas as Respostas

  • Desculpa pela demora Renato, 

    O problema parece ser "simples".
    O método "Pege_Load" sempre é executado quando vc está clicando no botão e isso está fazendo com que o controle seja atualizado com as informações do BD

    Colocar essa linha de comando na 1a linha do "Page_Load"
    if( !Page.IsPostBack )
    {
    // Seus comandos ficam aqui
    }
    e desta forma apenas quando abrir a página o conteúdo da página será carregado. Ao clicar no botão, os dados serão mantidos para serem salvos.

    Codigo Completo
            protected void Page_Load(object sender, EventArgs e)
            {
                // Nova linha que vc precisaria colocar
                if(!Page.IsPostBack)
                {
                            if (Request.QueryString["id"] != null)
                            {
                                if (Session["usuario"] != null)
                                {
                                    TextosDAO tDao = new TextosDAO();
                                    txtId.Value = Request.QueryString["id"];
                                    Textos texto = tDao.selecionarTexto(Convert.ToInt32(txtId.Value));
    
    
                                    FCKeditor1.Value = HttpUtility.HtmlDecode(texto.Texto);
                    }
                    else
                                {
                                    Response.Redirect("../login.aspx");
                                }
                            }
                            else
                            {
                                Response.Redirect("Default.aspx");
                            }
                } // Final da "Nova linha"
            }
    Espero ter ajudado.
    Qualquer dúvida posta aqui para que possamos te ajudar

    Qualquer duvida, posta aqui para que possamos te ajudar.
    Rafael F. P.
    MTS em Aplicações WEB c/ .NET 2.0
    Se Eu consegui te ajudar, poderia marcar como "Respondido" ? Grato. :)
    • Sugerido como Resposta Rafael F P quarta-feira, 12 de agosto de 2009 09:48
    • Marcado como Resposta Renato Belmiro quarta-feira, 12 de agosto de 2009 13:47
    quarta-feira, 12 de agosto de 2009 09:48
  • Valeu Rafael,

    Problema resolvido...

    Obs.: não teve demora não, muito obrigado

    Técnico em Desenvolvimento de sistemas
    quarta-feira, 12 de agosto de 2009 13:48