Ir para conteúdo
kelvim

Renderização Webforms apos postback

Recommended Posts

Boa tarde. estou trabalhando em uma página e tenho lá algumas formataçoes que se perdem quando faço algum postback.

O principal deles é no checkbox, crio assim:

<div>
    <asp:CheckBox ID="chbFiltroVinculados" runat="server" Checked="true" Text="Vinculados"></asp:CheckBox>
</div>

Ele renderiza assim:

<div>
  <div class="checker" id="uniform-ContentPlaceHolder1_chbFiltroNVinculados">
      <span class="checked">
        <input id="ContentPlaceHolder1_chbFiltroVinculados" type="checkbox" name="ctl00$ContentPlaceHolder1$chbFiltroNVinculados" checked="checked" style="opacity: 0;">
      </span>
  </div>
  <label for="ContentPlaceHolder1_chbFiltroVinculados">Vinculados</label>
</div>

Mas depois de qualquer postback a "nova renderização":

<div>
  <input id="ContentPlaceHolder1_chbFiltroVinculados" type="checkbox" name="ctl00$ContentPlaceHolder1$chbFiltroVinculados" checked="checked">
  <label for="ContentPlaceHolder1_chbFiltroVinculados">Vinculados</label>
</div>

 

Por que isso acontece?

Como posso fazer para manter a renderização inicial?

 

Obs: estou usando o AsyncPostBackTrigger

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observei que na verdade essa estrutura do checkbox está sendo modificada por um framework js-css, no entanto, ao fazer a requisição post ele perde referencia a esse framework.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Good
      Boa tarde,
      eu estou estudando como funciona um sistema de API  + Postback e estou com dúvidas...
      A linguagem mais prática para isto é NodeJS? 
       
      Por exemplo, vou liberar permissão para os usuários pegarem informações da conta de cadastro dele.. E por exemplo, quando eles atualizarem as informações de cadastro como nome, cidade, estado,  etc.. o sistema deve enviar no mesmo momento um postback com as informações..
       
      Como vocês fariam este sistema? Os grandes portais utilizam como? Tipo o mercado livre, google...
       
      aguardo resposta, 
      att
    • Por amenum
      Pessoal, tudo bem? Fiquei parado da programação um bom tempo, e agora que retornei, queria dar manutenção nas minhas aplicações web que estão em vb.net webforms. Comprei um template de bootstrap (https://seantheme.com/color-admin-v4.2/admin/html/index_v2.html) e queria controlar os elementos via code behind in vb.net, mas estou sofrendo aqui por conta do meu limitado conhecimento.
       
      Alguém poderia me dar uma luz em base neste link:
      https://seantheme.com/color-admin-v4.2/admin/html/ui_modal_notification.html
       
      Ao clicar na maioria dos botões dessa página, abre um modal ou alert. Pois bem, eu gostaria de simular essa abertura a partir de uma lógica no code behind, por exemplo, em um formulário, caso alguma regra não esteja sendo cumprida. Simples assim.
       
      No código original, temos:
      Chamada:
      <a href="#modal-dialog" class="btn btn-sm btn-success" data-toggle="modal">Demo</a>
       
      Div do modal
      <div class="modal fade" id="modal-dialog" runat="server">
                                      <div class="modal-dialog">
                                          <div class="modal-content">
                                              <div class="modal-header">
                                                  <h4 class="modal-title">Modal Dialog</h4>
                                                  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                                              </div>
                                              <div class="modal-body">
                                                  <p>
                                                      Modal body content here...
                                                  </p>
                                              </div>
                                              <div class="modal-footer">
                                                  <a href="javascript:;" class="btn btn-white" data-dismiss="modal">Close</a>
                                                  <a href="javascript:;" class="btn btn-success">Action</a>
                                              </div>
                                          </div>
                                      </div>
                                  </div>
       
      o que eu preciso?
      No code behind
       
       Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            try
                if verificaCampos() = false then ABRE O MODAL DIV COM A MENSAGEM DE ERRO          
           Catch ex As Exception
                     Throw ex
            end try
          End Sub
       
      Alguém pode me ajudar?
       
      muito obrigado.
       
    • Por thiagojoseh_
      Olá, pessoal
       
      Sou novo aqui no fórum e iniciante em C # ASP.NET. Estou com a seguinte situação, efetuei o cadastro de duas Classes "Aluno" e "Curso" através do MVC e, agora, tenho que cadastrar ambos em uma nova classe "Matricula".
       
      Matricula.cs
       
       public class Matricula
          {
              [Key]
              public int MatriculaID { get; set; }
              public int AlunoID { get; set; }
              public int CursoID { get; set; }
          }
       
      Contexto.cs
       
      using System.Data.Entity;
      namespace WebFormsMVC.Models
      {
          public class Contexto : DbContext
          {
              public DbSet<Aluno> Alunos { get; set; }
              public DbSet<Curso> Cursos { get; set; }
              public DbSet<Matricula> Matriculas { get; set; }
          }
      }
       
      Preciso realizar este cadastro em Matricula através do WebForms, ou seja, criei duas dropdownlist, uma para exibir Aluno e outra para Curso. Em seguida, um botão para Salvar os dados selecionados em Matricula. OBS.: Estou utilizando LocalDB.
       
      No método do botão salvar, eu tentei colocar o seguinte código para salvar:
       
       public partial class Default : System.Web.UI.Page
          {
              private Contexto db = new Contexto();
              protected void Page_Load(object sender, EventArgs e)
              {
                  ddlAlunos.DataTextField = "Nome";
                  ddlAlunos.DataValueField = "AlunoID";
                  ddlAlunos.DataSource = db.Alunos.ToList();
                  ddlAlunos.DataBind();
                  ddlCursos.DataTextField = "Descricao";
                  ddlCursos.DataValueField = "CursoID";
                  ddlCursos.DataSource = db.Cursos.ToList();
                  ddlCursos.DataBind();
              }
              protected void Button2_Click(object sender, EventArgs e) // Botão Salvar
              {
                     db.Matriculas.Add(ddlAlunos.SelectedItem.Value); 
                     db.SaveChanges();
              }
          }
       
      Em vermelho, o erro que está retornando... "não é possível converter de "string" para "WebFormsMVC.Models.Matricula"". Preciso apenas passar a ID dos valores selecionados na dropdownlist para a tabela Matricula no banco de dados, para depois exibí-los em uma nova tabela com os Alunos já cadastrados nos Cursos.
       
      Desde já agradeço.
      Muito obrigado!
    • Por Jorge E. Hime Somers
      Caros,
       
      Abaixo tenho um codigo que salva a imagem do canvas ser for um desenho, se for uma imagem de webcam não faz o postback !
      qual o problema ?
      <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="z_webcam.aspx.cs" Inherits="Portaria.z_webcam" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <!DOCTYPE HTML> <head>     <title>Saving Canvas to .png file on the server</title>     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"         type="text/javascript"></script>     <script type="text/Javascript">         function drawShapes() {             var canvas = document.getElementById("myCanvas");             var context = canvas.getContext("2d");             context.fillStyle = "green";             context.fillRect(0, 0, 100, 200);             context.beginPath();             context.lineWidth = "4";             context.strokeStyle = "Green";             context.fillStyle = "Yellow";             context.arc(150, 100, 50, 20, Math.PI * 2, false);             context.stroke();             context.fill();         }     </script> </head> <body onload="drawShapes()">     <video id="player" autoplay="autoplay" width="270" height="200"></video>     <button id="capture">Capturar</button>     <canvas id="myCanvas" width="200" height="200"></canvas>     <input type="button" id="btnSave" name="btnSave" value="Save the canvas to server" />     <script type="text/javascript">         /// begin of camera display to screen           /// and capture to canvas         var player = document.getElementById('player');         var snapshotCanvas = document.getElementById('myCanvas');         var captureButton = document.getElementById('capture');         var handleSuccess = function (stream) {             player.srcObject = stream;         };         captureButton.addEventListener('click', function () {             var context = myCanvas.getContext('2d');             context.drawImage(player, 0, 0, snapshotCanvas.width, snapshotCanvas.height);         });         navigator.mediaDevices.getUserMedia({ video: true }).then(handleSuccess);         /// end of camera display & capture         // Send the canvas image to the server.         $(function () {             $("#btnSave").click(function () {                 var image = document.getElementById("myCanvas").toDataURL("image/png");                 image = image.replace('data:image/png;base64,', '');                 $.ajax({                     type: 'POST',                     url: 'z_webcam.aspx/UploadImage',                     data: '{ "imageData" : "' + image + '" }',                     contentType: 'application/json; charset=utf-8',                     dataType: 'json',                     success: function (msg) {                         alert('Image saved successfully !');                     }                 });             });         });     </script> </body> </html> abaixo o webservices.. 
       
      using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Script.Services; using System.Web.Services; using System.Web.UI; using System.Web.UI.WebControls; namespace Portaria {     public partial class z_webcam : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {             string teste = "";             teste = "asdf";         }     }     [ScriptService]     public partial class z_webcam : System.Web.UI.Page     {         static string path = @"D:\temp\";         [WebMethod()]         public static void UploadImage(string imageData)         {             string fileNameWitPath = path + DateTime.Now.ToString().Replace("/", "-").Replace(" ", "- ").Replace(":", "") + ".png";             using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))             {                 using (BinaryWriter bw = new BinaryWriter(fs))                 {                     byte[] data = Convert.FromBase64String(imageData);                     bw.Write(data);                     bw.Close();                 }             }         }     } }  
    • Por MarKteus
      Olá,
       
      Estou com um problema que é o seguinte:
      O usuário utiliza a operação de gravar em uma pagina Web. Porém ao re-carregar a página ou quando clica no botão Voltar do navegador os dados recem gravados são gravados novamente criando 2 ou mais registros na tabela.
       
      Como posso impedir que um refresh regrave informações já gravadas ?
       
       
      Desde já obrigado!
×

Informação importante

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