文本框在回发后删除数据

时间:2014-08-21 18:25:13

标签: c# asp.net textbox postback

我有一个问题,文本框没有保留回发数据,在我的代码中我有asp.cs事件btnGuardar按钮正在通过存储过程插入它们并进行回发,这里的问题是,当你回发其他数据维护的字段,除了把texbox标题新闻,我不明白是在我的电脑工作本地使用Windows专业版8.1和最新版本的iis,但这个错误,不能保存我的价值texbox它发生在Windows Server 2012中,这发生在我正在进行的系统中的几个texbox其他页面中。

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin.master" AutoEventWireup="true" CodeFile="AltaEvento.aspx.cs" Inherits="Apartados_Administrar_Eventos_AltaEvento" EnableViewState="true" %>
<%@ Register TagPrefix="cc" Namespace="Winthusiasm.HtmlEditor" Assembly="Winthusiasm.HtmlEditor" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

    <style>
        .pickerEventosAdmin
        {
            width: 600px;
        }

    </style>
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <div class="other-box yellow-box ui-corner-all">
        <div class="cont tooltip ui-corner-all"
            title="Para mayor informaci&oacute;n: - Comun&iacute;quese con el administrador - Consulte la documentaci&oacute;n del m&oacute;dulo">
            <h3>Alta y Edici&oacute;n de eventos</h3>
            <p>
                Genere nuevos eventos y edite anteriores. Un evento puede contener im&aacute;genes, v&iacute;deos, y documentos.
            </p>
            <p>
                Puede agregar las im&aacute;genes, v&iacute;deos, y documentos despu&eacute;s de que guarde el evento.
            </p>
        </div>
    </div>
   <%-- <h1><span style="color:red; font-size:20px"> Se está trabajando con esta pantalla. Aún no puede dar de alta eventos</span></h1><br />--%>

    <asp:Label ID="lblMensaje" ClientIDMode="Static" runat="server"></asp:Label>
    <div class="portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all form-container">
        <div class="portlet-header ui-widget-header">Formulario de creaci&oacute;n y edici&oacute;n de eventos</div>
        <div class="portlet-content">
            <ul class="form-ul">     
                <li>
                    <label runat="server" for="<%=txtTituloEvento.ClientID%>">* Titulo del evento:</label>
                    <asp:TextBox  ID="txtTituloEvento" runat="server" CssClass="text  large"></asp:TextBox>
                </li>
                <li class="clearfix"></li>
                <li>
                    <label for="<%=Descripcion.ClientID%>">* Informaci&oacute;n del evento:</label>
                    <cc:HtmlEditor ID="Descripcion" runat="server" Height="100px" Width="750px"
                        ToggleMode="None" BackColor="White" BorderColor="WhiteSmoke"
                        BorderStyle="Solid" ButtonMouseOverColor="193, 210, 238"
                        DialogBackColor="GhostWhite" DialogBorderColor="Black"
                        DialogButtonBarColor="SlateGray" DialogForeColor="Black"
                        DialogHeadingColor="208, 208, 208" DialogHeadingTextColor="127, 157, 185"
                        DialogSelectedTabColor="127, 157, 185" DialogSelectedTabTextColor="White"
                        DialogTableColor="238, 238, 238" DialogUnselectedTabColor="208, 208, 208"
                        EditorBackColor="248, 248, 248" EditorBorderColor="217, 217, 217"
                        EditorInnerBorderColor="GradientInactiveCaption"
                        NoToolstripBackgroundImage="True" TabBackColor="208, 208, 208"
                        ToolbarColor="208, 208, 208"
                        Toolbars="Bold,Italic,Underline:Left,Center,Right,Justify|OrderedList,BulletedList|Subscript,Superscript,Link" />
                </li>
                <li class="clearfix"></li>
                <li>
                    <br />


                            <asp:CheckBox ID="chkPublicar" AutoPostBack="true" runat="server" /> Publicar

                     <%--   <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="chkPublicar" EventName="CheckedChanged" />
                        </Triggers>--%>

                </li>
                <li class="clearfix"></li>                                
                <li>
                    <br />
                    <asp:Button ID="btnGuardar" runat="server" Text="Guardar" CssClass="submitBtn" OnClick="btnGuardar_Click" />
                    <br /><br />
                </li>                
            </ul>
        </div>
    </div>
    <br />

和aspx.cs背后的代码

 using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;
    using System.Web.Security;
    using System.Text.RegularExpressions;

    public partial class Apartados_Administrar_Eventos_AltaEvento : System.Web.UI.Page
    {
        protected int IdEvento = 0;
        protected string _fechasEvento = "";
        protected string _fechaNuevaEvento = "";

    private void CargaFechasEvento( int eventoId)
        {
            using (SqlConnection Conn = conexionAdmin.Conecta())
            {
                using (SqlCommand cmdSelFechas = new SqlCommand("SelEventoByID", Conn))
                {
                    cmdSelFechas.CommandType = CommandType.StoredProcedure;
                    cmdSelFechas.Parameters.Add("@IDEVENTO", SqlDbType.Int).Value = eventoId;
                    Conn.Open();
                    SqlDataReader drEventos = cmdSelFechas.ExecuteReader();

                    if (drEventos.Read())
                    {
                       _fechasEvento = drEventos["Fecha_Evento"] == DBNull.Value ? "" : (string)drEventos["Fecha_Evento"];
                    }
                    drEventos.Close();
                    Conn.Close();
                    Conn.Dispose();
                }
            }
        }

        private void UpdStatusEvento(int IDNoticia, int Status, string idUser = "")
        {
            Guid userId = new Guid();
            if (idUser != "") { userId = new Guid(idUser); } // Conversion de string to Guid(el formato del UserId del Membership)
            using (SqlConnection Conn = conexionAdmin.Conecta())
            {
                using (SqlCommand CmdUpdStatusNoticia = new SqlCommand("UpStatusEvento", Conn))
                {
                    CmdUpdStatusNoticia.CommandType = CommandType.StoredProcedure;
                    CmdUpdStatusNoticia.Parameters.Add("@IDNOTICIA", SqlDbType.Int).Value = IDNoticia;

                    CmdUpdStatusNoticia.Parameters.Add("@STATUS", SqlDbType.Int).Value = Status;

                    if (idUser != "")
                    {
                        userId = new Guid(idUser);
                        CmdUpdStatusNoticia.Parameters.Add("@USERID", SqlDbType.UniqueIdentifier).Value = userId;
                    }
                    Conn.Open();
                    CmdUpdStatusNoticia.ExecuteNonQuery();
                    Conn.Close();
                    Conn.Dispose();
                }
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        { 

            //No shows me the ID of the textbox does not display asp.net control and I value the value entered at the texbox
            //Response.Write(txtTituloEvento.Text);
            //Response.End();
                if (txtTituloEvento.Text.Trim() == "")
                {
                    lblMensaje.Text = Alertas.alertaError("", "El t&iacute;tulo del evento es obligatorio");
                    return;
                }
                if (Descripcion.Text.Trim() == "")
                {
                    lblMensaje.Text = Alertas.alertaError("", "La descripci&oacute;n del evento es obligatoria");
                    return;
                }

              if (!Regex.IsMatch(txtTituloEvento.Text, Utilidades.validaTextoGeneral))
                {
                    lblMensaje.Text = Alertas.alertaError("", "La Título del evento no puede contener caracteres especiales.");
                    return;
                }

                string comando = "InsEvento";
                if (IdEvento != 0)
                {
                    comando = "UpdEvento";
                }
                using (SqlConnection Conn = conexionAdmin.Conecta())
                {
                    using (SqlCommand cmdInsEvento = new SqlCommand(comando, Conn))
                    {
                        cmdInsEvento.Connection = Conn;
                        string user = HttpContext.Current.User.Identity.Name; // Usuario logueado
                        MembershipUser u = Membership.GetUser(user);
                        string idUser = u.ProviderUserKey.ToString(); // Se obtiene el id del usuario pero en formato string
                        Guid userId = new Guid(idUser); // Se convierte a GUID el idUser

                        cmdInsEvento.CommandType = CommandType.StoredProcedure;
                        cmdInsEvento.Parameters.Add("@TITULO", SqlDbType.NVarChar, 100).Value = txtTituloEvento.Text.Trim();
                        cmdInsEvento.Parameters.Add("@CONTENIDO", SqlDbType.NVarChar).Value = Descripcion.Text.Trim();
                        cmdInsEvento.Parameters.Add("@PUBLICAR", SqlDbType.Bit).Value = chkPublicar.Checked;
                        if (chkPublicar.Checked == true)
                        {
                            cmdInsEvento.Parameters.Add("@USERID", SqlDbType.UniqueIdentifier).Value = userId;
                        }
                        SqlParameter prmIdEvento = new SqlParameter("@IDEVENTO", SqlDbType.Int);
                        if (IdEvento != 0)
                        {
                            // update
                            cmdInsEvento.Parameters.Add("@IDEVENTO", SqlDbType.Int).Value = IdEvento;
                        }
                        else
                        {
                            // insert parametro de salida

                            prmIdEvento.Direction = ParameterDirection.Output;
                            cmdInsEvento.Parameters.Add(prmIdEvento);
                        }
                        Conn.Open();
                        cmdInsEvento.ExecuteNonQuery();
                        Conn.Close();
                        if (IdEvento == 0)
                        {
                            IdEvento = Convert.ToInt32(prmIdEvento.Value);
                            Response.Redirect("AltaEvento.aspx?Key=" + IdEvento);
                        }
                        lblMensaje.Text = Alertas.alertaExito("", "El evento se actualiz&oacute; correctamente");
                    } /
                }

        } 

        protected void btnVolver_Click(object sender, EventArgs e)
        {
            Response.Redirect("Default.aspx");
        }

    }

1 个答案:

答案 0 :(得分:0)

如何做到这一点,将Textbox.text值保存在会话变量中并在页面加载时重新绑定它。检查here是否存在类似问题。