Pergunta

Qual é a diferença em termos de funcionalidade entre

<asp:Button id="button1" Text="Click me" runat="server" OnClick="submitEvent" />

e

<input type="button" id="button1" runat="server" value="Click me" />

Será que a entrada com runat = "server" atributo tem outros ou limitados propriedades e métodos?

Obrigado!

Foi útil?

Solução

O primeiro cria um System.Web.UI.WebControls.Button enquanto o segundo cria uma System.Web.UI.HtmlControls.HtmlInputButton.

Ambos são controles de servidor, mas os controles no namespace WebControls geralmente tem um pouco mais funcionalidade do que os controles no namespace HtmlControls. Normalmente eles colocam alguns dados em ViewState manter o controle de seu estado, e eles têm eventos de postback do lado do servidor.

Cada controles no correspondem HtmlControls namespace exatamente a um elemento HTML, enquanto os controles no namespace WebControls pode ser processado de maneira diferente dependendo do que o navegador que está solicitando a página pode suportar.

Outras dicas

O botão representado por <asp:Button runat="server".../> será convertido em um controle de servidor Web com um modelo de estado rico e diferentes propriedades e métodos que tem representação mais clara no mundo real, como Button.Text = "Clique-me".

O botão representado por <input type="button" runat="server"..../> será convertido para controle de servidor html representado por HtmlInputButton; com limitou propriedades, métodos e eventos. A maioria das propriedades se assemelham aos equivalentes do HTML como Button.Value = "Clique-me".

Note-se que os elementos de uma página de marcação são pré-processados ??/ compilado antes de ser usado e será convertido para uma representação de classe, onde cada elemento é representado por um controlo. Você pode acessar os controles do lado do servidor que são identificados pela runat = tag "server" do código por trás, uma vez que terá o controle de servidor de correspondência correto (web / html), outro conteúdo estático, incluindo uma tag <input type="button.../> com o runat = "server "será representada como uma LiteralControl.

O ex-linha é ASP.NET, este último simples XHTML.

O primeiro é analisado e interpretado no lado do servidor, após o qual o código HTML é gerado, que praticamente corresponde ao seu segundo exemplo. O botão ASP.NET é realmente pouco mais do invólucro luz sobre th funcionalidade do botão de entrada HTML, e deve ser usado onde quer que você precisa para lidar com o evento Click no lado do servidor (ou no caso geral eventos), e é geralmente a maneira para ir, uma vez que você está deixando ASP.NET abstrair a idéia de um botão na sua página para você.

funcionalidade de ambos os controlos é igual com a diferença de que em primeiro lugar é um controle de NET e um segundo controlo é HTML que podem ser feitas usando ServerControl

runat = "server".

e primeiro é rica em evants e metods THN o segundo ....

Não há eventos do servidor associados a tais controles um, mas você pode usá-lo em codebehind para mudar suas propriedades.

A segunda opção não irá, provavelmente, ainda trabalho. runat = "server" será processado diretamente para a saída HTML, onde ele não terá funcionalidade e só vai quebrar a validação HTML.

entrada é um elemento HTML que tem apenas propriedades HTML, e definitivamente nenhum método de qualquer tipo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top