Primeiro na página onde irá exibir dados que iremos clicar para edita-los vamos fazer o seguinte;
Digamos que está utilizado um repeater (serve para qualquer coisa desde que tenha um <Div>)
Exemplo do Repeater;
Repare que utilizando <%# DataBinder.Eval(Container.DataItem, "Titulo") %> você se conecta ao CodeBehind do asp.net fazendo isso, estamos setando os dados no repeater
Carregar Repeater
Para carregar um repeater basta utilizar isso no codebehind;
E no repeater do HTML, você monta a estrutura, e onde quer exibir os dados adicione <%# DataBinder.Eval(Container.DataItem, "Titulo") %>
JavaScript
Más o foco é editar os dados... Repare no <div class="jogo" OnClick="RedirectToGameDetail('<%#Session("NivelAcesso").ToString%>', <%# DataBinder.Eval(Container.DataItem, "Id") %>)"> em foco (OnClick) nesse cara, colocamos um evento em JavaScript para efetuar um evento, código do script (que pode ser colocado em baixo do repeater);
Esse Script vai se conectar com OnClick e irá abrir uma nova pagina "cadastroEdicao.aspx" com o request id "CadastroEdicao.aspx?id=" + id.
Concatenamos o link de de cadastro com o id do item selecionado.
Pagina de Edição
Já na pagina de edição temos 2 textbox TxtTitulo e TxtDetalhes.
Temos nossa classe que carrega os dados (não vou entrar muito no detalhe de carregar dados, temos um post sobre isso)
Agora como pegamos o Id? Simples!
E pronto, só criar o metodo de edição! pegando o id dessa forma!
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<div class="jogo" OnClick="RedirectToGameDetail('<%#Session("NivelAcesso").ToString%>', <%# DataBinder.Eval(Container.DataItem, "Id") %>)">
<div class="capa-jogo">
<img alt="<%# DataBinder.Eval(Container.DataItem, "Titulo") %>" src="<%# DataBinder.Eval(Container.DataItem, "Imagem") %>"/>
</div>
<div class="nome-jogo">
<%# DataBinder.Eval(Container.DataItem, "Titulo") %>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
Repare que utilizando <%# DataBinder.Eval(Container.DataItem, "Titulo") %> você se conecta ao CodeBehind do asp.net fazendo isso, estamos setando os dados no repeater
Carregar Repeater
Para carregar um repeater basta utilizar isso no codebehind;
Private _Jogos As JogosMetodos
Public Sub CarregarDados()
_jogos = New JogosMetodos
Repeater1.DataSource = _Jogos.ObterDados
Repeater1.DataBind()
End Sub
E no repeater do HTML, você monta a estrutura, e onde quer exibir os dados adicione <%# DataBinder.Eval(Container.DataItem, "Titulo") %>
JavaScript
Más o foco é editar os dados... Repare no <div class="jogo" OnClick="RedirectToGameDetail('<%#Session("NivelAcesso").ToString%>', <%# DataBinder.Eval(Container.DataItem, "Id") %>)"> em foco (OnClick) nesse cara, colocamos um evento em JavaScript para efetuar um evento, código do script (que pode ser colocado em baixo do repeater);
<script>
function RedirectToGameDetail(perfil, id) {
if (perfil === "A") {
top.location.href = "CadastroEdicao.aspx?id=" + id
} else {
top.location.href = "DetalheJogo.aspx?id=" + id
}
}
</script>
Esse Script vai se conectar com OnClick e irá abrir uma nova pagina "cadastroEdicao.aspx" com o request id "CadastroEdicao.aspx?id=" + id.
Concatenamos o link de de cadastro com o id do item selecionado.
Pagina de Edição
Já na pagina de edição temos 2 textbox TxtTitulo e TxtDetalhes.
Temos nossa classe que carrega os dados (não vou entrar muito no detalhe de carregar dados, temos um post sobre isso)
Agora como pegamos o Id? Simples!
Dim
_Jogos
As
JogosMetodos
' Referenciamos nossa classe
Public Sub
CarregarDadosParaEdicao() _Jogos =
New
JogosMetodos
' Instanciamos nossa classe
If
Request.QueryString.AllKeys.Contains("id")
Then
' Aqui verificamos se tem nossa id
Dim
ID = 0
Dim
Jogo = _Jogos.CarregarDados(Integer.TryParse(Request.QueryString("id"), ID)) TxtTitulo.text = Jogo.Titulo TxtDescricao.Text = Jogo.Descricao
End If End Sub
E pronto, só criar o metodo de edição! pegando o id dessa forma!
0 comentários:
Postar um comentário