Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Error al rellenar Dropdownlist de un datagrid (http://www.forosdelweb.com/f29/error-rellenar-dropdownlist-datagrid-415717/)

Motki 09/08/2006 01:51

Error al rellenar Dropdownlist de un datagrid
 
Hola a to2,
Tengo un Datagrid y quiero añadirle a este datagrid un DropDownList, para ello, guiandome de un tutorial he creado dentro del Datagrid el dropdown de la siguiente manera :
Código:


<asp:TemplateColumn HeaderText="Orden">
<ItemTemplate>
  <asp:Label ID="lblTempOrden" Text='<%# DataBinder.Eval(Container.DataItem, "orden") %>' Runat=server />
  <asp:DropDownList id="cboOrden"  DataSource="<%# BindOrden() %>" DataTextField="Orden"  DataTextValue="Orden"        runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

Hasta aqui creo que bien, pero ahora quiero rellenar mi DropDownList del 1 al 20
para ello he creado la siguiente función:
Código:


function BindOrden()
dim i
For i = 0 to 20
  cboOrden.Items.Add(new ListItem(i.ToString(), i.ToString())) 
Next
return true
End function

Pero me dice el siguiente error : No se ha declarado el nombre 'cboOrden'.
el error me da en la siguiente linea : cboOrden.Items.Add(new ListItem(i.ToString(), i.ToString()))

RootK 09/08/2006 08:30

es obvio que no funciona ese code friend, la primera es porque en tu funcion no estas regresando nada como datasource y 2da estás usando un control dropdownlist dentro de un control (Datagrid) y debes obtener esa referencia mediante el evento ItemDataBound del datagrid.. y podría quedarte de ésta forma:

Cita:

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim ddl As DropDownList = CType(e.Item.FindControl("cboOrden"), DropDownList)

For i As Integer = 0 To 10
ddl.Items.Add(New ListItem(i, i))
Next
End If
End Sub
Checalo y cualquier cosa por aqui andaremos..

Motki 10/08/2006 01:21

Gracias Rootk por la respuesta
He probado el código que me has enviado (he sustiutido Handles DataGrid1.ItemDataBound por dgProducts.ItemDataBound) pero no me funciona me da el siguietne error:
BC30506: La cláusula Handles requiere una variable WithEvents

He quitado el "Handles dgProducts.ItemDataBound"
Código:


Private Sub DataGrid1_ItemDataBound(ByVal sender As Object,
ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
 
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
dim i as integer
Dim ddl As DropDownList = CType(e.Item.FindControl("cboOrden"), DropDownList)
For i  = 0 To 10
ddl.Items.Add(New ListItem(i, i))
Next
End If
End Sub

y en el datagrid he declarado lo siguiente :

Código:


<asp:DataGrid id="dgProducts" runat="server" Width="500px"
AutoGenerateColumns="False" CellPadding="4" OnEditCommand="dgProducts_Edit"
OnUpdateCommand="dgProducts_Update" OnCancelCommand="dgProducts_Cancel"
OnDeleteCommand="dgProducts_Delete" showFooter="True" PageSize="5"
DataKeyField="idSubmenu" ItemDataBound="DataGrid1_ItemDataBound">

Ahora no me dá error pero tampoco me rellena el dropdown....
Que estoy haciendo mal?
Aparte de esto la linea:

Código:

If e.Item.ItemType = ListItemType.Item
Or e.Item.ItemType = ListItemType.AlternatingItem Then

no sé su significado ......

RootK 10/08/2006 07:29

te falta asociarle el evento a tu datagrid... quedaría así:

Cita:

Private Sub dgProducts_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgProducts.ItemDataBound
....
....

Motki 11/08/2006 01:01

perdona mi insistencia,
lo que me dices fue lo primero que probé pero me da el error:

BC30506: La cláusula Handles requiere una variable WithEvents

Estoy programando en asp.net con el programa web matrix.....

CieloEterno 06/02/2008 14:44

Gracias
 
Hola, muchas gracias; tú codigo me sirvio mucho RootK :aplauso:

julinhio 09/05/2008 10:11

Re: Error al rellenar Dropdownlist de un datagrid
 
hai yono tengo problemas con el llenado del combo yo tengo un problema al tratar de capturar el valor seleccionado no se si podrian aconsejar como hacerle para capturar el valor seleccionado


La zona horaria es GMT -6. Ahora son las 21:29.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.