首页 > 解决方案 > 如何在不重新加载页面的情况下在 HTML 表中显示寄存器?

问题描述

我正在使用 asp.net 和 C# 开发一个网站,并且正在注册新用户,但是当我尝试在表格中向该用户添加许多电话时,在我按下注册之前不会显示新的注册再次按钮,但它注册了两次,但只显示一个,你能帮我吗?

这是来自 asp.net 的代码

我使用<asp:Literal ID="tablaTel" runat="server"></asp:Literal>

<div class="panel panel-default letra" id="panelTelefonos">
    <div class="panel-body">
        <div class="container-fluid text-center">
            <!--INICIO TITULO DE PANEL TELEFONOS-->
            <div class="row text-left">
                <label class="control-label" for="txtRegRecNombre">
                    <span class="form-text">TELEFONOS DE CONTACTO:</span>
                </label>
            </div>
            <!--FIN TITULO DE PANEL TELEFONOS-->
            <!--INICIO PRIMERA FILA TELEFONOS-->
            <div class="row">
                <div class="col-sm-3">
                     <label class="control-label" for="DdTelefonos">
                         <span class="form-text">Tipo de Telefono:</span>
                     </label>
                    <asp:DropDownList ID="DdTelefonos" runat="server" class="form-control ns_">
                         <asp:ListItem Selected="True" Value="-99">-- Selecciona --</asp:ListItem>
                         <asp:ListItem Value="1">Celular</asp:ListItem>
                         <asp:ListItem value="2">Casa</asp:ListItem>
                         <asp:ListItem value="3">Oficina</asp:ListItem>
                     </asp:DropDownList>
                </div>
                <div class="col-sm-3">
                     <label class="control-label" for="txtRegRecNumeroTel">
                         <span class="form-text">Numero:</span>
                     </label>
                     <asp:TextBox ID="txtRegRecNumeroTel" runat="server" CssClass="form-control ns_" MaxLength="10" onkeyup="this.value = this.value.toUpperCase();" placeholder="Inserte el Numero de Contacto"></asp:TextBox>
                </div>
                <div class="col-sm-6">
                     <label class="control-label" for="btnRegRecAgregarTel">
                         <br />
                     </label>
                    <br />
                    <asp:Button ID="btnRegRecAgregarTel" runat="server" class="btn btn-primary" Text="Agregar" Style="float:right" OnClick="btnRegRecAgregarTel_Click"/>
                </div>  
            </div>
            <!--FIN PRIMERA FILA TELEFONOS-->
            <br />
            <!--INICIO PANEL DE TABLA TELEFONOS-->
            <div class="row">
                <div class="col-sm-3"></div>
                <div class="col-sm-6">
                    <div class="panel panel-default" id="panelMuestra">
                        <div class="panel-body letra">
                            <!--INICO TABLA DE TELEFONOS-->

                            <div class="table-responsive" >
                            <asp:Literal ID="tablaTel" runat="server"></asp:Literal>
                            </div>
                            <!--FIN TABLA DE TELEFONOS-->
                            <!--INICIO BOTONES DE TABLA TELEFONOS-->
                            <div class="row">
                                <div class="col-sm-12">
                                    <asp:Button ID="Button1" runat="server" class="btn btn-primary" Text="Modificar" Style="float:right"/>
                                    <asp:Button ID="Button2" runat="server" class="btn btn-primary" Text="Eliminar" Style="float:right"/>
                                </div>
                            </div>
                            <!--FIN BOTONES DE TABLA TELEFONOS-->
                        </div>
                    </div>
                </div>
                <div class="col-sm-3"></div>                  
            </div>
            <!--FIN PANEL DE TABLA TELEFONOS-->
        </div>
    </div>
</div>
<!--FIN PANEL TELEFONOS-->

这是来自 C# 的代码,用于在 DB 中插入新寄存器

protected void btnRegRecAgregarTel_Click(object sender, EventArgs e)
{
    int tipoNum = Int32.Parse(DdTelefonos.SelectedValue);
    int num = Int32.Parse(txtRegRecNumeroTel.Text);
    int empresa = Int32.Parse(DdlRegRecEmpresa.SelectedValue);
    int empleado = Int32.Parse(txtRegRecIdEmpleado.Text);
    this.GetData();
    try
    {
        SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog = GMG; Trusted_Connection = true; ");

        con.Open();
        SqlCommand com = new SqlCommand(); 
        com.Connection = con; 
        com.CommandType = CommandType.Text; 
        com.CommandText = "INSERT INTO telefonos(TEL_ID_EMPRESA, TEL_ID_EMPLEADO, TEL_NUMERO_TELEFONO, TEL_TIPO_TELEFONO)" 
            +"VALUES(@TEL_ID_EMPRESA, @TEL_ID_EMPLEADO, @TEL_NUMERO_TELEFONO, @TEL_TIPO_TELEFONO); "; 

        com.Parameters.Add("@TEL_ID_EMPRESA", SqlDbType.Int).Value = empresa;
        com.Parameters.Add("@TEL_ID_EMPLEADO", SqlDbType.Int).Value = empleado;
        com.Parameters.Add("@TEL_NUMERO_TELEFONO", SqlDbType.Int).Value = num;
        com.Parameters.Add("@TEL_TIPO_TELEFONO", SqlDbType.Int).Value = tipoNum;

        com.ExecuteNonQuery();

    }
    catch (MySqlException ex)
    {
        //Mostrar mensaje de que existio un error al crear el nuevo registro

    }
}

要加载表并连接我正在使用的数据库:

private void TablaTelefonosCarga()
{
    int tam = 1;
    DataTable dt = this.GetData();
    //Building an HTML string.
    StringBuilder html = new StringBuilder();
    //Table start.
    html.Append("<table class='table table-striped table-bordered text-center'>" +
        "<thead>" +
        "<tr class='tituloTabla'>");

    html.Append("<th scope='col' style='text-align:center; vertical-align:middle'>");
    html.Append("#");
    html.Append("</th>");
    html.Append("<th scope='col' style='text-align:center; vertical-align:middle'>");
    html.Append("");
    html.Append("</th>");
    html.Append("<th scope='col' style='text-align:center; vertical-align:middle'>");
    html.Append("Tipo Teléfono");
    html.Append("</th>");
    html.Append("<th scope='col' style='text-align:center; vertical-align:middle'>");
    html.Append("Teléfono");
    html.Append("</th>");

    html.Append("</tr>" +
        "</thead>" +
        "<tbody> ");

    //Building the Data rows.
    foreach (DataRow row in dt.Rows)
    {

        html.Append("<tr>");
        html.Append("<th scope='row' style='text-align:center; vertical-align:middle'>" + tam + "</th>");
        html.Append("<td><input type= 'checkbox' id='"+"checkbox"+tam+"'/></td>");
        foreach (DataColumn column in dt.Columns)
        {
            html.Append("<td>");
            html.Append(row[column.ColumnName]);
            html.Append("</td>");
        }

        html.Append("</tr>");
        tam++;
    }

    //Table end.
    html.Append("</tbody>" +
        "</table>");
    //Append the HTML string to Placeholder.
    tablaTel.Text = html.ToString();
}
private DataTable GetData()
{
    int empresa = Int32.Parse(DdlRegRecEmpresa.SelectedValue);
    string empleado = (txtRegRecIdEmpleado.Text);
    using (SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog = GMG; Trusted_Connection = true; "))
    {
        using (SqlCommand cmd = new SqlCommand("SELECT TEL_TIPO_TELEFONO,TEL_NUMERO_TELEFONO FROM telefonos WHERE TEL_ID_EMPLEADO = @TEL_ID_EMPLEADO"))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Parameters.Add("@TEL_ID_EMPLEADO", SqlDbType.VarChar).Value = empleado;
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                using (DataTable dt = new DataTable())
                {
                    sda.Fill(dt);
                    return dt;
                }
            }
        }
    }
}

我希望你能帮帮我 :)

标签: c#asp.netwebforms

解决方案


所以在执行调用方法 TablaTelefonosCarga();

com.ExecuteNonQuery();
TablaTelefonosCarga();

推荐阅读