Como trabalhar com Campos DropDownList e CheckBox dentro de uma GridView Manual ?
Estou desenvolvendo um Form, ASP.NET que tem uma GRID que será programada manualmente sem Wizards,(SqlDatasource).
Nela tenho os campos de ID (txbox), Nome do funcionário (txbox), Função (drowdownList), ativo (checkbox), botão Edit, botão Excluir.
A inclusão eu faço por fora da GRIDVIEW.
Já a alteração e Exclusão terei que usar pela GRIDVIEW que será progamada manualmente. Depois das minhas colunas de dados ( ID , Nome do funcionário , Função , Ativo_SN) tenho os boltoes Edit/Excluir.
Em anexo segue o codigo de uma outra tela q tentei fazer, mas tb deu problema, nela há 4 drowdownlist.
Em relação aos botões Alterar, Excluir e Atualizar e Cancelar terei que trabalhar com os nomes nativos dele, de modo que eu possa usar as funções da GridView (row_deleting, row_updating, row_cancel, row_dataBound, RowEditing).
Fico no aguardo
atte
Sérgio
///// = Trecho do código que tentei implementar sem sucesso ===
Segue em anexo um outro código.
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Acao.aspx.cs" Inherits="Acao" Title="Cadastro Ação" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cpContent" Runat="Server">
<div id="content">
<h3>
Ação
</h3>
<asp:UpdatePanel id="UpdatePanel1" runat="server">
<contenttemplate>
<DIV class="box"><DIV class="top"><IMG class="right" alt="" src="images/box_top_right.gif" /> <IMG class="left" alt="" src="images/box_top_left.gif" /></DIV><DIV class="content"><SPAN class="row"><SPAN class="preField">Sistema:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlSistema" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSistema_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Módulo:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlModulo" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlModulo_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Função:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlFuncao" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlFuncao_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">SubFunção:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlSubFuncao" runat="server"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Ação:</SPAN> <SPAN class="field"><asp:TextBox id="tbAção" runat="server"></asp:TextBox> </SPAN></SPAN><SPAN class="row"><SPAN class="preField"></SPAN><asp:Button id="btIncluir" onclick="Incluir" runat="server" Text="Incluir" CssClass="button"></asp:Button> </SPAN><BR /></DIV><DIV class="bottom"><IMG class="right" alt="" src="images/box_bottom_right.gif" /> <IMG class="left" alt="" src="images/box_bottom_left.gif" /></DIV></DIV><asp:GridView id="gvAcao" runat="server" CssClass="grid" OnRowUpdating="Updating" OnRowEditing="Editing" OnRowDeleting="ExcluirDeleting" OnRowCommand="ExcluirCommand" DataKeyNames="CODIGO" Width="100%" BorderWidth="0px" EmptyDataText="Não há registros!" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true" OnPageIndexChanging="gvAcao_PageIndexChanging" OnRowCancelingEdit="CancelarEdit" OnRowDataBound="gvAcao_RowDataBound">
<RowStyle CssClass="gridLinhaPar"></RowStyle>
<Columns>
<asp:TemplateField HeaderText="Codigo" SortExpression="codigo"><EditItemTemplate>
<asp:Label id="lbGridCodigo1" runat="server" Text=<%# Bind("CODIGO") %> __designer:wfdid="w7"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lbGridCodigo2" runat="server" Text=<%# Bind("CODIGO") %> __designer:wfdid="w1"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sistema" SortExpression="sistema"><EditItemTemplate>
<asp:DropDownList id="ddlGridSistema" runat="server" __designer:wfdid="w8"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridSistema" runat="server" Text=<%# Bind("SISTEMA") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Modulo" SortExpression="modulo"><EditItemTemplate>
<asp:DropDownList id="ddlGridModulo" runat="server" __designer:wfdid="w5"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridModulo" runat="server" Text=<%# Bind("MODULO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Função" SortExpression="funcao"><EditItemTemplate>
<asp:DropDownList id="ddlGridFuncao" runat="server" __designer:wfdid="w4"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridFuncao" runat="server" Text=<%# Bind("FUNCAO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SubFunção" SortExpression="subfuncao"><EditItemTemplate>
<asp:DropDownList id="ddlGridSubFuncao" runat="server" __designer:wfdid="w3"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridSubFuncao" runat="server" Text=<%# Bind("SUB") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acão" SortExpression="acao"><EditItemTemplate>
<asp:TextBox id="tbGridAcao" runat="server" Text=<%# Bind("ACAO") %> __designer:wfdid="w2"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridAcao" runat="server" Text=<%# Bind("ACAO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"><EditItemTemplate>
<asp:ImageButton ID="imgConfirm" runat="server" CausesValidation="true" CommandName="Update"
ImageUrl="~/images/icon_save.gif" />
<asp:ImageButton ID="imgCancel" runat="server" CausesValidation ="false" CommandName="Cancel"
ImageUrl="~/images/icon_exit.gif" />
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="true" CommandName="Edit"
ImageUrl="~/images/icon_edit.gif" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"><ItemTemplate>
<asp:ImageButton ID="imgDelete" runat="server" CommandArgument= <%# Eval("CODIGO") %> CausesValidation="false" CommandName="Delete"
ImageUrl="~/images/icon_trash.gif" />
</ItemTemplate>
</asp:TemplateField>
</Columns> <HeaderStyle CssClass="gridCabecalho"></HeaderStyle> <AlternatingRowStyle CssClass="gridLinhaImpar"></AlternatingRowStyle>
</asp:GridView> <SPAN class="controls"><asp:Button id="btSair" runat="server" Text="Sair" CssClass="button"></asp:Button> </SPAN>
</contenttemplate>
</asp:UpdatePanel>
</div>
</asp:Content> .cs using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Running.Data; public partial class Acao : System.Web.UI.Page
{
// String de Conexao //
string strConexao = ConfigurationManager.ConnectionStrings["rhdConnectionString"].ToString();
//-------------------// // Page Load //
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ExibirDados();
CarregarDDLSistema();
}
}
//----------// // Chamadas para as Classes de Preenchimento das DropDownLists //
protected void ddlSistema_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLModulo();
}
protected void ddlModulo_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLFuncao();
}
protected void ddlFuncao_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLSubFuncao();
}
//-----------------------------------------------------------// // Classes de Preenchimento das DropDownLists //
private void CarregarDDLSistema()
{
string SQL = "Select cd_sistema, ds_sistema from tb_sistema";
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlSistema.DataSource = dt;
ddlSistema.DataValueField = "cd_sistema";
ddlSistema.DataTextField = "ds_sistema";
ddlSistema.DataBind(); ddlSistema.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLModulo()
{
string SQL = "Select cd_modulo, ds_modulo from tb_sistemamodulo where cd_sistema = " + ddlSistema.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlModulo.DataSource = dt;
ddlModulo.DataValueField = "cd_modulo";
ddlModulo.DataTextField = "ds_modulo";
ddlModulo.DataBind(); ddlModulo.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLFuncao()
{
string SQL = "Select cd_sistemafuncao, ds_funcao from tb_sistemafuncao where cd_modulo = " + ddlModulo.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlFuncao.DataSource = dt;
ddlFuncao.DataValueField = "cd_sistemafuncao";
ddlFuncao.DataTextField = "ds_funcao";
ddlFuncao.DataBind(); ddlFuncao.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLSubFuncao()
{
string SQL = "Select cd_sistemasubfuncao, ds_sistemasubfuncao from tb_sistemasubfuncao where cd_sistemafuncao = " + ddlFuncao.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlSubFuncao.DataSource = dt;
ddlSubFuncao.DataValueField = "cd_sistemasubfuncao";
ddlSubFuncao.DataTextField = "ds_sistemasubfuncao";
ddlSubFuncao.DataBind(); ddlSubFuncao.Items.Insert(0, new ListItem("Selecione", "0"));
}
//--------------------------------------------//
// Classe para Carregar a GridView da Página //
protected void ExibirDados()
{
string SQL = "Select cd_sistemaacao CODIGO, ds_sistema SISTEMA, ds_modulo MODULO, " +
"ds_funcao FUNCAO, ds_sistemasubfuncao SUB, ds_acao ACAO from tb_sistemaacao " +
"INNER JOIN tb_sistema on tb_sistema.cd_sistema = tb_sistemaacao.cd_sistema " +
"INNER JOIN tb_sistemamodulo on tb_sistemamodulo.cd_modulo = tb_sistemaacao.cd_modulo " +
"INNER JOIN tb_sistemafuncao on tb_sistemafuncao.cd_sistemafuncao = tb_sistemaacao.cd_sistemafuncao " +
"INNER JOIN tb_sistemasubfuncao on tb_sistemasubfuncao.cd_sistemasubfuncao = tb_sistemaacao.cd_sistemasubfuncao " +
"ORDER BY ds_sistema, ds_modulo, ds_funcao, ds_sistemasubfuncao"; DataAccess da = new DataAccess(); da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL)); gvAcao.DataSource = dt;
gvAcao.DataBind(); da.CloseConection();
}
//------------------------------------------// // Função de Incluir //
protected void Incluir(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string sSQL = "Insert into tb_sistemaacao (ds_acao,cd_sistema,cd_modulo,cd_sistemafuncao, cd_sistemasubfuncao)";
sSQL += " values ( " + tbAção.Text.ToString() + ", " + ddlSistema.SelectedValue + ", " + ddlModulo.SelectedValue + "," + ddlFuncao.SelectedValue + "," + ddlSubFuncao.SelectedValue + ")"; DataAccess da = new DataAccess(); da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(sSQL)); ExibirDados(); da.CloseConection();
}
//------------------// // Funções para Excluir //
protected void ExcluirCommand(object sender, GridViewCommandEventArgs e)
{ if (e.CommandName == "Delete")
{
string Sql = "Delete tb_sistemaacao where cd_sistemaacao = " + e.CommandArgument;
DataAccess da = new DataAccess(); da.OpenConection(); int retorno = da.ExecuteNonQuery(Sql);
ExibirDados(); da.CloseConection();
} }
protected void ExcluirDeleting(object sender, GridViewDeleteEventArgs e)
{ }
//---------------------// //Função para Paginação //
protected void gvAcao_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
string SQL = "Select cd_sistemaacao CODIGO, ds_sistema SISTEMA, ds_modulo MODULO," +
" ds_funcao FUNCAO, ds_sistemasubfuncao SUB,ds_acao ACAO from tb_sistemaacao " +
"INNER JOIN tb_sistema on tb_sistema.cd_sistema = tb_sistemaacao.cd_sistema " +
"INNER JOIN tb_sistemamodulo on tb_sistemamodulo.cd_modulo = tb_sistemaacao.cd_modulo " +
"INNER JOIN tb_sistemafuncao on tb_sistemafuncao.cd_sistemafuncao = tb_sistemaacao.cd_sistemafuncao " +
"INNER JOIN tb_sistemasubfuncao on tb_sistemasubfuncao.cd_sistemasubfuncao = tb_sistemaacao.cd_sistemasubfuncao " +
"ORDER BY ds_sistema, ds_modulo, ds_funcao, ds_sistemasubfuncao";
DataAccess da = new DataAccess();
da.OpenConection();
DataTable dt = da.ExecuteReader(SQL); gvAcao.DataSource = dt;
gvAcao.PageIndex = e.NewPageIndex;
gvAcao.DataBind();
da.CloseConection();
}
//---------------------//
protected void Editing(object sender, GridViewEditEventArgs e)
{
gvAcao.EditIndex = e.NewEditIndex;
ExibirDados(); }
protected void Updating(object sender, GridViewUpdateEventArgs e)
{
/*GridViewRow row = gvAcao.Rows(e.RowIndex);
TextBox x = row.FindControl("tbGridAcao");
DropDownList y = row.FindControl("ddlGridSistema");
DropDownList z = row.FindControl("ddlGridModulo");
DropDownList w = row.FindControl("ddlGridFuncao");
DropDownList k = row.FindControl("ddlGridSubFuncao");
string sSQL= "Update tb_sistemaacao set ds_acao = "+x.Text+", cd_sistema*/ }
protected void CancelarEdit(object sender, GridViewCancelEditEventArgs e)
{
gvAcao.EditIndex = -1;
ExibirDados();
} protected void gvAcao_RowDataBound(object sender, GridViewRowEventArgs e)
{
// GridViewRow row = DropDownList ddlSistemas = new DropDownList();
ddlSistemas = (DropDownList)e.Row.FindControl("ddlGridSistema");
DropDownList ddlModulo = (DropDownList)e.Row.FindControl("ddlGridModulo");
DropDownList ddlFuncao = (DropDownList)e.Row.FindControl("ddlGridFuncao");
DropDownList ddlSubFuncao = (DropDownList)e.Row.FindControl("ddlGridSubFuncao"); string SQL = "Select cd_sistema, ds_sistema from tb_sistema"; DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(SQL);
ddlSistemas.DataSource = dt;
ddlSistema.DataValueField = "cd_sistema";
ddlSistema.DataTextField = "ds_sistema";
ddlSistema.DataBind();
}
}
<asp:Content ID="Content1" ContentPlaceHolderID="cpContent" Runat="Server">
<div id="content">
<h3>
Ação
</h3>
<asp:UpdatePanel id="UpdatePanel1" runat="server">
<contenttemplate>
<DIV class="box"><DIV class="top"><IMG class="right" alt="" src="images/box_top_right.gif" /> <IMG class="left" alt="" src="images/box_top_left.gif" /></DIV><DIV class="content"><SPAN class="row"><SPAN class="preField">Sistema:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlSistema" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlSistema_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Módulo:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlModulo" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlModulo_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Função:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlFuncao" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlFuncao_SelectedIndexChanged"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">SubFunção:</SPAN> <SPAN class="field"><asp:DropDownList id="ddlSubFuncao" runat="server"></asp:DropDownList> </SPAN></SPAN><SPAN class="row"><SPAN class="preField">Ação:</SPAN> <SPAN class="field"><asp:TextBox id="tbAção" runat="server"></asp:TextBox> </SPAN></SPAN><SPAN class="row"><SPAN class="preField"></SPAN><asp:Button id="btIncluir" onclick="Incluir" runat="server" Text="Incluir" CssClass="button"></asp:Button> </SPAN><BR /></DIV><DIV class="bottom"><IMG class="right" alt="" src="images/box_bottom_right.gif" /> <IMG class="left" alt="" src="images/box_bottom_left.gif" /></DIV></DIV><asp:GridView id="gvAcao" runat="server" CssClass="grid" OnRowUpdating="Updating" OnRowEditing="Editing" OnRowDeleting="ExcluirDeleting" OnRowCommand="ExcluirCommand" DataKeyNames="CODIGO" Width="100%" BorderWidth="0px" EmptyDataText="Não há registros!" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true" OnPageIndexChanging="gvAcao_PageIndexChanging" OnRowCancelingEdit="CancelarEdit" OnRowDataBound="gvAcao_RowDataBound">
<RowStyle CssClass="gridLinhaPar"></RowStyle>
<Columns>
<asp:TemplateField HeaderText="Codigo" SortExpression="codigo"><EditItemTemplate>
<asp:Label id="lbGridCodigo1" runat="server" Text=<%# Bind("CODIGO") %> __designer:wfdid="w7"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label id="lbGridCodigo2" runat="server" Text=<%# Bind("CODIGO") %> __designer:wfdid="w1"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sistema" SortExpression="sistema"><EditItemTemplate>
<asp:DropDownList id="ddlGridSistema" runat="server" __designer:wfdid="w8"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridSistema" runat="server" Text=<%# Bind("SISTEMA") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Modulo" SortExpression="modulo"><EditItemTemplate>
<asp:DropDownList id="ddlGridModulo" runat="server" __designer:wfdid="w5"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridModulo" runat="server" Text=<%# Bind("MODULO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Função" SortExpression="funcao"><EditItemTemplate>
<asp:DropDownList id="ddlGridFuncao" runat="server" __designer:wfdid="w4"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridFuncao" runat="server" Text=<%# Bind("FUNCAO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SubFunção" SortExpression="subfuncao"><EditItemTemplate>
<asp:DropDownList id="ddlGridSubFuncao" runat="server" __designer:wfdid="w3"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridSubFuncao" runat="server" Text=<%# Bind("SUB") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acão" SortExpression="acao"><EditItemTemplate>
<asp:TextBox id="tbGridAcao" runat="server" Text=<%# Bind("ACAO") %> __designer:wfdid="w2"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lbGridAcao" runat="server" Text=<%# Bind("ACAO") %> />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"><EditItemTemplate>
<asp:ImageButton ID="imgConfirm" runat="server" CausesValidation="true" CommandName="Update"
ImageUrl="~/images/icon_save.gif" />
<asp:ImageButton ID="imgCancel" runat="server" CausesValidation ="false" CommandName="Cancel"
ImageUrl="~/images/icon_exit.gif" />
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="true" CommandName="Edit"
ImageUrl="~/images/icon_edit.gif" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"><ItemTemplate>
<asp:ImageButton ID="imgDelete" runat="server" CommandArgument= <%# Eval("CODIGO") %> CausesValidation="false" CommandName="Delete"
ImageUrl="~/images/icon_trash.gif" />
</ItemTemplate>
</asp:TemplateField>
</Columns> <HeaderStyle CssClass="gridCabecalho"></HeaderStyle> <AlternatingRowStyle CssClass="gridLinhaImpar"></AlternatingRowStyle>
</asp:GridView> <SPAN class="controls"><asp:Button id="btSair" runat="server" Text="Sair" CssClass="button"></asp:Button> </SPAN>
</contenttemplate>
</asp:UpdatePanel>
</div>
</asp:Content> .cs using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Running.Data; public partial class Acao : System.Web.UI.Page
{
// String de Conexao //
string strConexao = ConfigurationManager.ConnectionStrings["rhdConnectionString"].ToString();
//-------------------// // Page Load //
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ExibirDados();
CarregarDDLSistema();
}
}
//----------// // Chamadas para as Classes de Preenchimento das DropDownLists //
protected void ddlSistema_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLModulo();
}
protected void ddlModulo_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLFuncao();
}
protected void ddlFuncao_SelectedIndexChanged(object sender, EventArgs e)
{
CarregarDDLSubFuncao();
}
//-----------------------------------------------------------// // Classes de Preenchimento das DropDownLists //
private void CarregarDDLSistema()
{
string SQL = "Select cd_sistema, ds_sistema from tb_sistema";
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlSistema.DataSource = dt;
ddlSistema.DataValueField = "cd_sistema";
ddlSistema.DataTextField = "ds_sistema";
ddlSistema.DataBind(); ddlSistema.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLModulo()
{
string SQL = "Select cd_modulo, ds_modulo from tb_sistemamodulo where cd_sistema = " + ddlSistema.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlModulo.DataSource = dt;
ddlModulo.DataValueField = "cd_modulo";
ddlModulo.DataTextField = "ds_modulo";
ddlModulo.DataBind(); ddlModulo.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLFuncao()
{
string SQL = "Select cd_sistemafuncao, ds_funcao from tb_sistemafuncao where cd_modulo = " + ddlModulo.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlFuncao.DataSource = dt;
ddlFuncao.DataValueField = "cd_sistemafuncao";
ddlFuncao.DataTextField = "ds_funcao";
ddlFuncao.DataBind(); ddlFuncao.Items.Insert(0, new ListItem("Selecione", "0"));
}
private void CarregarDDLSubFuncao()
{
string SQL = "Select cd_sistemasubfuncao, ds_sistemasubfuncao from tb_sistemasubfuncao where cd_sistemafuncao = " + ddlFuncao.SelectedValue.ToString();
DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL));
ddlSubFuncao.DataSource = dt;
ddlSubFuncao.DataValueField = "cd_sistemasubfuncao";
ddlSubFuncao.DataTextField = "ds_sistemasubfuncao";
ddlSubFuncao.DataBind(); ddlSubFuncao.Items.Insert(0, new ListItem("Selecione", "0"));
}
//--------------------------------------------//
// Classe para Carregar a GridView da Página //
protected void ExibirDados()
{
string SQL = "Select cd_sistemaacao CODIGO, ds_sistema SISTEMA, ds_modulo MODULO, " +
"ds_funcao FUNCAO, ds_sistemasubfuncao SUB, ds_acao ACAO from tb_sistemaacao " +
"INNER JOIN tb_sistema on tb_sistema.cd_sistema = tb_sistemaacao.cd_sistema " +
"INNER JOIN tb_sistemamodulo on tb_sistemamodulo.cd_modulo = tb_sistemaacao.cd_modulo " +
"INNER JOIN tb_sistemafuncao on tb_sistemafuncao.cd_sistemafuncao = tb_sistemaacao.cd_sistemafuncao " +
"INNER JOIN tb_sistemasubfuncao on tb_sistemasubfuncao.cd_sistemasubfuncao = tb_sistemaacao.cd_sistemasubfuncao " +
"ORDER BY ds_sistema, ds_modulo, ds_funcao, ds_sistemasubfuncao"; DataAccess da = new DataAccess(); da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(SQL)); gvAcao.DataSource = dt;
gvAcao.DataBind(); da.CloseConection();
}
//------------------------------------------// // Função de Incluir //
protected void Incluir(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string sSQL = "Insert into tb_sistemaacao (ds_acao,cd_sistema,cd_modulo,cd_sistemafuncao, cd_sistemasubfuncao)";
sSQL += " values ( " + tbAção.Text.ToString() + ", " + ddlSistema.SelectedValue + ", " + ddlModulo.SelectedValue + "," + ddlFuncao.SelectedValue + "," + ddlSubFuncao.SelectedValue + ")"; DataAccess da = new DataAccess(); da.OpenConection(); DataTable dt = da.ExecuteReader(new SqlCommand(sSQL)); ExibirDados(); da.CloseConection();
}
//------------------// // Funções para Excluir //
protected void ExcluirCommand(object sender, GridViewCommandEventArgs e)
{ if (e.CommandName == "Delete")
{
string Sql = "Delete tb_sistemaacao where cd_sistemaacao = " + e.CommandArgument;
DataAccess da = new DataAccess(); da.OpenConection(); int retorno = da.ExecuteNonQuery(Sql);
ExibirDados(); da.CloseConection();
} }
protected void ExcluirDeleting(object sender, GridViewDeleteEventArgs e)
{ }
//---------------------// //Função para Paginação //
protected void gvAcao_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
string SQL = "Select cd_sistemaacao CODIGO, ds_sistema SISTEMA, ds_modulo MODULO," +
" ds_funcao FUNCAO, ds_sistemasubfuncao SUB,ds_acao ACAO from tb_sistemaacao " +
"INNER JOIN tb_sistema on tb_sistema.cd_sistema = tb_sistemaacao.cd_sistema " +
"INNER JOIN tb_sistemamodulo on tb_sistemamodulo.cd_modulo = tb_sistemaacao.cd_modulo " +
"INNER JOIN tb_sistemafuncao on tb_sistemafuncao.cd_sistemafuncao = tb_sistemaacao.cd_sistemafuncao " +
"INNER JOIN tb_sistemasubfuncao on tb_sistemasubfuncao.cd_sistemasubfuncao = tb_sistemaacao.cd_sistemasubfuncao " +
"ORDER BY ds_sistema, ds_modulo, ds_funcao, ds_sistemasubfuncao";
DataAccess da = new DataAccess();
da.OpenConection();
DataTable dt = da.ExecuteReader(SQL); gvAcao.DataSource = dt;
gvAcao.PageIndex = e.NewPageIndex;
gvAcao.DataBind();
da.CloseConection();
}
//---------------------//
protected void Editing(object sender, GridViewEditEventArgs e)
{
gvAcao.EditIndex = e.NewEditIndex;
ExibirDados(); }
protected void Updating(object sender, GridViewUpdateEventArgs e)
{
/*GridViewRow row = gvAcao.Rows(e.RowIndex);
TextBox x = row.FindControl("tbGridAcao");
DropDownList y = row.FindControl("ddlGridSistema");
DropDownList z = row.FindControl("ddlGridModulo");
DropDownList w = row.FindControl("ddlGridFuncao");
DropDownList k = row.FindControl("ddlGridSubFuncao");
string sSQL= "Update tb_sistemaacao set ds_acao = "+x.Text+", cd_sistema*/ }
protected void CancelarEdit(object sender, GridViewCancelEditEventArgs e)
{
gvAcao.EditIndex = -1;
ExibirDados();
} protected void gvAcao_RowDataBound(object sender, GridViewRowEventArgs e)
{
// GridViewRow row = DropDownList ddlSistemas = new DropDownList();
ddlSistemas = (DropDownList)e.Row.FindControl("ddlGridSistema");
DropDownList ddlModulo = (DropDownList)e.Row.FindControl("ddlGridModulo");
DropDownList ddlFuncao = (DropDownList)e.Row.FindControl("ddlGridFuncao");
DropDownList ddlSubFuncao = (DropDownList)e.Row.FindControl("ddlGridSubFuncao"); string SQL = "Select cd_sistema, ds_sistema from tb_sistema"; DataAccess da = new DataAccess();
da.OpenConection(); DataTable dt = da.ExecuteReader(SQL);
ddlSistemas.DataSource = dt;
ddlSistema.DataValueField = "cd_sistema";
ddlSistema.DataTextField = "ds_sistema";
ddlSistema.DataBind();
}
}
Sergio Santos
Curtidas 0
Respostas
Guinther Pauli
09/12/2008
Olá Sergio
Como você não está usando o SqlDataSource e programando tradicionalmente (com ADO.NET), eu não aconselho a utilização do SqlDataSource em runtime. Aconselho fazer todos os procedimentos de manutenção como no ASP.NET 1.1 clássico, ou seja, capturando os valores diretamente dos controles e gerando as instruções apropriadas com SqlCommand para atualização. Além disso, você pode trabalhar com o GridView sem necessariamente usar o SqlDataSource, bastando para isso usar um SqlDataReader ou um DataSet se for necessária a paginação.
Mais uma dica, eu aconselho fortemente o uso de StoredProcedures nesse caso, para processar as atualizações, pois aumentam drasticamente a performance da solução.
Att
Guinther
Como você não está usando o SqlDataSource e programando tradicionalmente (com ADO.NET), eu não aconselho a utilização do SqlDataSource em runtime. Aconselho fazer todos os procedimentos de manutenção como no ASP.NET 1.1 clássico, ou seja, capturando os valores diretamente dos controles e gerando as instruções apropriadas com SqlCommand para atualização. Além disso, você pode trabalhar com o GridView sem necessariamente usar o SqlDataSource, bastando para isso usar um SqlDataReader ou um DataSet se for necessária a paginação.
Mais uma dica, eu aconselho fortemente o uso de StoredProcedures nesse caso, para processar as atualizações, pois aumentam drasticamente a performance da solução.
Att
Guinther
GOSTEI 0
Sergio Santos
09/12/2008
Bom Dia Guinter
Estou usando o ASP.NET 2.0 /VS2005
Vai ser a primeira vez que terei que implementar isto desta maneira. Não achei nenhuma video-Aula que fizesse o tratamento/manipulação de uma GRIDVIEW programaticamente.
Vc teria como me passar um modelo?
Uma das minhas dificuldades esta sendo em pegar o numero das linhas nos eventos Row_Command, Row_deleting, Row_updating.
[]s
Sérgio
GOSTEI 0
Sergio Santos
09/12/2008
Guinter
Bom DIa
Estou no aguardo do seu retorno!
[]s
Sérgio
GOSTEI 0
[devmedia .net]
09/12/2008
Opa, blz Sérgio...
Vamos tentar resolver seu problema o quanto antes ok !!??
segue abaixo a sua solução...
Obs: Não estou usando nada de wizards, copie o código dá página e o .cs ok? esse exemplo está funcionando corretamente, basta você colocar seus métodos de recuperação de dados e exclusão.
Qualquer dúvida entre em contato:
Seuge:
GridView.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="500px" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="87%" valign="top">
<br />
<table width="98%" id="table1" runat="server" border="0" align="center" cellpadding="0"
cellspacing="3">
<tr>
<td>
</td>
</tr>
</table>
<table width="98%" id="tableBotoesCadastro" runat="server" border="0" align="center"
cellpadding="0" cellspacing="3">
<tr>
<td width="78%" align="right">
<div align="center">
</div>
</td>
<td width="6%" align="right">
<div align="center">
<a href="#">
<asp:ImageButton runat="server" ID="imagebuttonNovo" ImageUrl="~/Images/bt_novo.jpg"
BorderStyle="None" OnClick="imagebuttonNovo_Click" /></a></div>
</td>
</tr>
</table>
<!-- In¡cio do DataGridView -->
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="1%">
</td>
<td width="97%">
<div align="center" class="style3">
LISTA DE PROFISSIONAIS</div>
</td>
<td width="2%">
</td>
</tr>
<tr>
<td height="108">
</td>
<td>
<table width="100%" border="6" cellpadding="6" cellspacing="0" bordercolor="#ffffff"
bgcolor="#F6F6F6">
<tr>
<td>
<asp:GridView ID="GridViewProfissional" runat="server" BorderStyle="Double" HorizontalAlign="Center"
Width="100%" Font-Names="Verdana" Font-Size="X-Small" AutoGenerateColumns="False"
CaptionAlign="Top" CellPadding="1" GridLines="None" BackColor="White" DataKeyNames="ID"
OnRowCommand="GridViewProfissional_RowCommand" OnRowDataBound="GridViewProfissional_RowDataBound">
<HeaderStyle HorizontalAlign="Left" Font-Names="Verdana" Font-Size="10px" />
<AlternatingRowStyle BackColor="#F1F1F1" BorderColor="White" BorderWidth="1px" />
<Columns>
<asp:ButtonField CommandName="Editar" ButtonType="Image" ImageUrl="~/Images/pesquisar.gif"
Text="Pesquisar" ItemStyle-Width="20">
<ItemStyle Width="20px" />
</asp:ButtonField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton runat="server" ID="BotaoExcluir" CommandName="Excluir" CommandArgument=<%# Eval("ID") %>>
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/lixeira.gif" ToolTip="Excluir o registro." />
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Nome" DataField="NOME" />
<asp:BoundField DataField="Email" HeaderText="EMAIL" />
</Columns>
<PagerStyle Wrap="True" />
<RowStyle BackColor="White" />
</asp:GridView>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- T‚rmino do DataGridView -->
<br />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
GridView.aspx.cs
public partial class GridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Aqui vocˆ carrega o gridview pela primeira vez
ListarProfissional();
}
}
protected void ListarProfissional()
{
//Aqui vocˆ faz sua consulta na base de dados buscando os profissionais e popula o gridview
GridViewProfissional.DataSource = dtProfissional;
GridViewProfissional.DataBind();
}
protected void GridViewProfissional_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Neste momento vocˆ "mapeia" o componente de editar e excluir
LinkButton BotaoExcluir = (LinkButton)e.Row.FindControl("BotaoExcluir");
//BotÆo excluir com confirma‡Æo
BotaoExcluir.Attributes.Add("onclick", "javascript:return confirm(Confirma a exclusÆo do registro ? )");
}
}
protected void GridViewProfissional_RowCommand(object sender, GridViewCommandEventArgs e)
{
//Para editar um registro, vocˆ pega o c¢digo do mesmo e envia para a tela de cadastro
//pesquisando na base o c¢digo enviado e preechendo os campos necess rios para edi‡Æo.
if (e.CommandName == "Editar")
{
int RowID = Convert.ToInt32(e.CommandArgument);
if (GridViewProfissional.DataKeys != null)
{
int codRegistro = Convert.ToInt32(GridViewProfissional.DataKeys[RowID].Value);
//Neste momento vocˆ envia o c¢digo do profissional para a tela de cadastro para poder fazer edi‡Æo
Response.Redirect("CadastrarProfissional.aspx?codRegistro=" + codRegistro);
}
}
else if (e.CommandName == "Excluir")
{
int CodigoProfissional = int.Parse(e.CommandArgument.ToString());
//Nesse ponto vocˆ coloca o c¢digo/m‚todo que ir excluir o usu rio
// e logo depois atualiza o gridview chamando o m‚todo ListarProfissional()
ListarProfissional();
}
}
protected void imagebuttonNovo_Click(object sender, EventArgs e)
{
//Para cadastrar um novo funcion rio
Response.Redirect("CadastrarProfissional.aspx");
}
}
Aguardo retorno !!
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Carlos
Não entendi pq vc usou Row_DataBOunws e Row_Command ao invés de Row_editing e Row_deleting?
PS - Existe alguma artigo ou Video-Aula que explique estas questões mais detalhadas e também a questão dos CAST?
´
[]s e Obrigado!
GOSTEI 0
[devmedia .net]
09/12/2008
Opa, Blz Sérgio...
Cara, como lhe disse , não estou utilizando Wizards, por esse motivo não utilizo os métodos que os wizards criam
que são os citados por vc..
Esse exemplo que lhe enviei fiz justamente para você entender que não é precisa usar wizards e fica muito mais simples se vc mesmo solucionar seu problema com seus próprios códigos.
Utilize esse exemplo...
Fiz um curso sobre camadas que resolverá suas dúvidas...
https://www.devmedia.com.br/cursos/listcurso.asp?curso=77
Caso não tenha acesso ao curso me fale...
Aguardo retorno para fecharmos o chamado.
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Este esta sendo o meu problema...
Andei vendo muito VIDEO-AULAS com Wizard e ainda não consegui pensar na construção sem Wizards...
Já vi a sua Video-Aula, mas confesso que fiquei um pouco perdido na parte da orientação a Objetos.
Existem algum material intermediario?
PS - Outra coisa, existe alguma Video sobre DATALIST com DBREPEATER ?
GOSTEI 0
[devmedia .net]
09/12/2008
Sérgio, você está fugindo justamente da chave do negócio..
a orientação a objeto, sem isso não se desenvolve nada..
A video aula que te passei é básica e comtempla a solução do seu problema,
você pode pegar somente a parte do grid que é a sua dúvida e deixar as outras pra lá,
pois na parte do grid não há OO , somente códigos e chamadas de métodos que você já tem..
Mas já vou lhe dizendo, sem OO não tem desenvolvimento ok !?
Tem que fazer um esforço maior para aprender a desenvolver com OO,
depois de entender isso, pronto.. desenvolverá qualquer coisa, mas sem OO você será apenas um digitador de códigos sacou !?
A VA que lhe enviei explica tudo com detalhes, veja , reveja se quiser entender OO,
caso contrário, vá direto na parte que resolve seu problema que é a parte do Grid.
Os wizards são engessados como já conversamos em um outro chamado,
você tem que fazer do jeito dele, caso contrário não funciona...
Eu montei o exemplo funcional da solução do seu problema, é apenas copiar e colar, não tem segredo.
Aguardo seu retorno
Abraços
Carlos Jr
GOSTEI 0
[devmedia .net]
09/12/2008
Olá Sério, tudo bem ?
Ainda com dúvidas ?
Estou a toda disposição para lhe ajudar a resolver da maneira que desejar ok !?
Talvez eu tenha usado algumas palavras que podem ter entendimentos dúbios, mas de maneira alguma eu quis ser agressivo ok !?
Como já conversamos várias outras vezes, me sinto um pouco mais à vontade para lhe falar e dar sugestões,
mas não leva a mal nunca ok!?
A Video Aula que pode lhe ajudar na solução é a ultima aula,
segue o link
https://www.devmedia.com.br/articles/viewcomp.asp?comp=7858
E Video Aula somente com DataList e Repeater não tem,
mas tem uma com repeater tem uma do Guinther
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5921
Estou aqui, a sua disposição e farei o que for necessário para lhe ajudar...
Fico no aguardo do seu retorno,
Grande abraço
Carlos Jr
GOSTEI 0
[devmedia .net]
09/12/2008
Opa, tudo bem Sérgio ?
Estou aguardando seu retorno para dar continuidade ao atendimento.
Viu minhas mensagens ?
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Bom Dia
Carlos
Sim. Vi suas mensagens e já estou começando a estudar as suas VAs de N-CAmandas.
Agora estou sentido falta de um roteiro de "BEST PRACTICES" com OO.
Ainda não esta muito claro pra mim a questão de criar uma DAL e uma grande biblitoeca de funções?
Tipo - Não estou visualizando como/onde poderia criar uma função genérica para limpar todos os controles tipo Label, TextBox e DropDowlist.
Desde já obrigado pela atenção e ajuda!
[]s Sérgio
[]s Sérgio
GOSTEI 0
[devmedia .net]
09/12/2008
Olá Sérgio, tranquilo ?
Que bom que eu pude lhe ajudar, mas vamos a sua ultima pergunta.
Sobre melhores práticas de OO existem uma matéria na revista nº 38 que fala sobre melhores práticas dê uma olhada nela, é um bom artigo.
Sobre um método de limpar dropdowns por exemplo,
você pode criar uma classe Util.cs dentro da camada de negócios (BLL),
e deixar lá todos os métodos genéricos para utilização no sistema,
assim seu código fica 100% organizado...
DAL -> Data Access Layer -> Camada responsável pelos acessos a base de dados, execução de procedimentos e etc.
BLL -> Business Logic Layer -> Todas as regras de negócios do sistemas devem ficar dentro desta camada, deixando toda a inteligência do sistema em um só lugar, ser para validar quaisquer informações.
E a camada de interface de aprensentação para o usuário...
Segue um método para limpar dados de um dropdown, coloque-o dentro de uma classe Util dentro da camanda BLL...
protected void button1_click(object sender, eventargs e)
{
control myform;
using (myform = page.findcontrol("form1"))
{
foreach (control ctrl in myform.controls)
{
//clears textbox
if (ctrl is textbox)
(ctrl as textbox).text = "";
//clears dropdown selection
if (ctrl is dropdownlist)
(ctrl as dropdownlist).clearselection();
//clears listbox selection
if (ctrl is listbox)
(ctrl as listbox).clearselection();
//clears checkbox selection
if (ctrl is checkbox)
(ctrl as checkbox).checked = false;
//clears radiobutton selection
if (ctrl is radiobuttonlist)
(ctrl as radiobuttonlist).clearselection();
//clears checkbox selection
if (ctrl is checkboxlist)
(ctrl as checkboxlist).clearselection();
}
}
}
Abraços , aguardo retorno para fecharmos o post.
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Só não entendi pq vc colocou o codigo de limpeza dentro de um botão.
e aproveitando este assunto, como faço para executar o evento do botão sem ter que clica-lo?
Com isto da fechamos este o POST!
[]s
Sérgio
GOSTEI 0
Sergio Santos
09/12/2008
Sobre o artigo da Revista, 38 , exite alguma possiblidade de vc liberar esta revista digitalmente para eu ler?
[]s
Sérgio
GOSTEI 0
[devmedia .net]
09/12/2008
Oi Sérgio,
a revista na verdade é a 35
https://www.devmedia.com.br/articles/viewcomp.asp?comp=4973
Vou solicitar o seu acesso à revista e lhe dou um retorno por aqui !!
Abraços
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Carlos
Surgiu uma duvida no codigo que vc me passou no trecho abaixo.
control myform;
using (myform = page.findcontrol("form1"))
Quem é este Form1 ? Seria o meu Default.aspx?
[]s
Sérgio
GOSTEI 0
[devmedia .net]
09/12/2008
Opa,
toda página aspx gerada tem um form,
para verificar isso olhe no código HTML gerado por ela...
lá tem o nome do form
caso não tenha você deve colocar...
o Form é criado no inicio da página abaixo do head e finalizado no final da página junto ao último head
<form id="form1" runat="server">
</form>
o form1 nesse caso, você pode colocar o nome que você quiser...
Abraços
Carlos Jr
GOSTEI 0
[devmedia .net]
09/12/2008
Sérgio,
eu coloquei o método para limpar o fomulário no evento de um botão, pois se você precisar limpar os campos da tela você cria um botão chamado "Limpar Campos" e no evento deste botão você limpa os campos..
Se quiser que ele limpe em qualquer outro evento, coloque onde achar necesário, o método serve em qualuqer lugar não precisa ser em um botão, coloquei em um botão para ficar mais fácil o seu entendimento, ok!?
Abraços..
Carlos Jr
GOSTEI 0
Sergio Santos
09/12/2008
Carlos
Boa Noite
Entendi a questão do Form, mas apenas para finalizar...
Não teria uma maneira desta função ficar genérica a qualquer form?
De modo que eu pudesse fazer algo to tipo
limparcontrole(); // Onde este limpar controle estivesse numa local comum a todos os Forns?
bib.limparacontroles(); //
ou na piro das hipoteses
[]s
Sérgio
Apenas para finalizar...
GOSTEI 0
[devmedia .net]
09/12/2008
Opa,
cara você tem que passar o form como parâmetro para que o método saiba quais controles existentes naquela página..
Você cria a classe util coloca o método lá recebendo como parâmetro um objeto form,
então na página principal você coloca a chamada do método passando o próprio form como parâmetro.
na página
limparCampos(this.form)
...
na classe...
limparCampos(Form form)
{
....
}
sacou ?!
Isso é orientação a Objeto...
Abraços
Carlos Jr
GOSTEI 0