I'm using a single click event to edit cell of my gridview, my specific problem is that I have to validate a DataTable column called "indicador", if indicador is true I have to use a textbox and false use Dropdownlist.
Here is my GridView
OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand"
OnRowUpdating="GridView1_RowUpdating"
ShowFooter="True" >
<columns>
<asp:ButtonField Text="SingleClick" CommandName="SingleClick" Visible="false"/>
<asp:TemplateField HeaderText="Id">
<itemtemplate>
<asp:Label ID="IdLabel" runat="server" Text='<%# Eval("Id") %>'>
</itemtemplate>
<asp:TemplateField HeaderText="Clasificación IMM">
<itemtemplate>
<asp:Label ID="LbClasificacionIMM" runat="server" Text='<%# Eval("clasificacion_imm")%>'>
<asp:DropDownList ID="ddlClasificacionIMM" runat="server" AutoPostBack="false" CausesValidation="true" Visible="false">
<asp:ListItem>
<asp:ListItem>La zona no tiene potencial
<asp:ListItem>La zona es agricola de autoconsumo
<asp:ListItem>En la zona existe zona franca industrial
<asp:ListItem>Pecuario mercado interno
<asp:TextBox ID="txtClasificacionIMM" runat="server" Text='<%# Eval("clasificacion_imm") %>' Visible="false">
</itemtemplate>
</columns>
Datatable
private DataTable _sampleData
{
get
{
DataTable dt = (DataTable)Session["TestData"];
if (dt == null)
{
dt = new DataTable();
dt.Columns.Add(new DataColumn("id", typeof(int)));
dt.Columns.Add(new DataColumn("nombre_proyecto", typeof(string)));
dt.Columns.Add(new DataColumn("total", typeof(string)));
dt.Columns.Add(new DataColumn("clasificacion_imm", typeof(string)));
dt.Columns.Add(new DataColumn("ponderacion_imm", typeof(string)));
dt.Columns.Add(new DataColumn("clasificacion_hab", typeof(string)));
dt.Columns.Add(new DataColumn("ponderacion_hab", typeof(string)));
dt.Columns.Add(new DataColumn("clasificacion_zona", typeof(string)));
dt.Columns.Add(new DataColumn("ponderacion_zona", typeof(string)));
dt.Columns.Add(new DataColumn("clasificacion_conec", typeof(string)));
dt.Columns.Add(new DataColumn("ponderacion_conec", typeof(string)));
dt.Columns.Add(new DataColumn("indicador", typeof(bool)));
dt.Rows.Add(new object[] { 1, "Proyecto 1", "80", "23", "25", "23.68", "21", "potencial", "3", "Conectividad", "2", "true" });
dt.Rows.Add(new object[] { 2, "Proyecto 2", "32", "15", "24", "12.68", "21", "potencial", "3", "Conectividad", "8", "true" });
dt.Rows.Add(new object[] { 3, "Proyecto 3", "45", "44", "54", "12.68", "21", "potencial", "3", "Conectividad", "5", "true" });
dt.Rows.Add(new object[] { 4, "Proyecto 4", "12", "23", "26", "12.68", "21", "potencial", "3", "Conectividad", "9", "false" });
dt.Rows.Add(new object[] { 5, "Proyecto 5", "44", "22", "44", "12.68", "21", "potencial", "3", "Conectividad", "8", "false" });
dt.Rows.Add(new object[] { 6, "Proyecto 6", "21", "93", "12", "12.68", "34", "potencial", "7", "Conectividad", "7", "false" });
DataColumn[] keys = new DataColumn[1];
keys[0] = dt.Columns["id"];
dt.PrimaryKey = keys;
_sampleData = dt;
}
return dt;
}
set
{
Session["TestData"] = value;
}
}