Ver Mensaje Individual
  #1  
Antiguo 22-07-2008
mamen mamen is offline
Miembro
 
Registrado: jun 2004
Posts: 80
Reputación: 20
mamen Va por buen camino
Problema campo EditItemTemplate

Hola a todos!!!!

Tengo un datagrid con dos columnas una es el nombre del elemento y otra su valor, la columna valor en el caso de q el elemento sea el nombre de la via, al editarlo debe mostrar sólo la lista de vias disponible para ese municipio, y en otros casos (por ejemplo cuando es el numero de via) muestra sólo el textbox. El problema viene cuando al editar me muestra tanto la lista desplegable como el textbox, quiero ocultar una u otra dependiendo del elemento q tenga editado. No se en q evento poner estas condiciones, he probado en el EditCommand pero no reconoce los controles del EditItemTemplate (lógico sólo está el control label con el valor del elemento), en el ItemDataBound tampoco y en el metodo RellenarVias del datasource del Dropdownlist tampoco. Cómo lo puedo hacer????

También necesito q cuando me muestre la lista de vias, en esta esté seleccionado por defecto el valor q tenia el control label antes de editarlo. Esto creo q lo debo poner en el método RellenarVias (el código lo he puesto mas abajo), pero no se cómo, ya que asigno un dataview directamente al datasource de la lista, en un dataview se puede poner un valor seleccionado por defecto, cómo???

El codigo del datagrid es el siguiente:

<ItemTemplate>
<asp:Label id="valor" runat="server"
text='<%# DataBinder.Eval(Container, "DataItem.v_elemento") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="txtvalor" runat="server" width="115px"
text='<%# DataBinder.Eval(Container, "Dataitem.v_elemento") %>'></asp:TextBox>
<aspropDownList id="dlstvias" runat="server" width="240px" autopostback="True" DataSource="<%# RellenarVias() %>" DataTextField="snvia"
DataValueField="snvia" />
</EditItemTemplate>

El código del método RellenarVias:

function TWebfmReciboConsulta.RellenarVias()ataView;
var
ds_vias,ds_resultadoataSet;
dtataView;
i:Integer;
tviasataTable;
Row1ataRow;
col1ataColumn;
dgridataGrid;
begin
if codelemento='4' then begin
c:=TConexion.Create;
c.conexion :=Ca.Ingres.Client.IngresConnection.Create;
c.OpenConexion(c.conexion, Session['annoactual'].toString,Session['conexion'].toString,Session['codmpio'].toString);

via:=TVia.Create;
ds_vias:=via.ObtenerVias(c.conexion ,'001','13', Session['nmpio'].toString);
tvias:=System.Data.DataTable.Create;
col1:=System.Data.DataColumn.Create ('snvia');
tvias.Columns.Add(col1);
row1:=tvias.NewRow();
row1['snvia']:= 'Seleccione una via';
tvias.Rows.Add(row1);

for i:=0 to (ds_vias.Tables[0].Rows.Count-1) do begin
row1:=tvias.NewRow();
row1['snvia']:= ds_vias.Tables[0].Rows[i].Item['s_via'].toString + ' '+ ds_vias.Tables[0].Rows[i].Item['nc_via'].toString;
tvias.Rows.Add(row1);
end;
dt:=DataView.Create(tvias);
result:=dt;
c.CloseConexion(c.conexion);
end;
end;

Muchas gracias por todo. Espero vuestra ayuda. Chao
Responder Con Cita