begin process at 2012 05 28 00:05:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

Oracle

 > 

Findcontrol dans un datagrid avec templatecolumn creer dynamiquement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Findcontrol dans un datagrid avec templatecolumn creer dynamiquement

vendredi 2 juin 2006 à 17:11:49 | Findcontrol dans un datagrid avec templatecolumn creer dynamiquement

jusrob

Bonjour,

quand je fait update(enregistrer) dans un datagrid avec des templatescolumn creer dynamiquement, findcontrol ne trouve pas mon mon id du textbox .... je crois que mon problème est à la création de mes templatecolumns mais je ne vois pas où est le problème.
Au secours !!! :)
Merci d'avance
Voici mon code au complet ....

Imports

LibraryOracle

Imports

LibraryMessage

Public

Class GererParamTraitement

Inherits System.Web.UI.Page

Dim oracleLocal As OracleODP

#

Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.

<System.Diagnostics.DebuggerStepThrough()>

PrivateSub InitializeComponent()

EndSub

ProtectedWithEvents LabTitre As System.Web.UI.WebControls.Label

ProtectedWithEvents DataGridTable As System.Web.UI.WebControls.DataGrid

ProtectedWithEvents DropListTable As System.Web.UI.WebControls.DropDownList

ProtectedWithEvents LabJavascript As System.Web.UI.WebControls.Label

ProtectedWithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton

ProtectedWithEvents TextBox1 As System.Web.UI.WebControls.TextBox

ProtectedWithEvents Hidden1 As System.Web.UI.HtmlControls.HtmlInputHidden

ProtectedWithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid

'NOTE: The following placeholder declaration is required by the Web Form Designer.

'Do not delete or move it.

Private designerPlaceholderDeclaration As System.Object

PrivateSub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Init

'CODEGEN: This method call is required by the Web Form Designer

'Do not modify it using the code editor.

InitializeComponent()

EndSub

#

EndRegion

PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load

oracleLocal = Session("oracle")

IfNot Page.IsPostBack Then

'Charger la liste des noms de table avec web.config

EndIf

EndSub

PrivateSub SelectionTable()

Dim Selection AsInteger

Selection =

Me.DropListTable.SelectedIndex

If Selection > 0 Then

AfficherTableau()

EndIf

EndSub

PrivateSub AfficherTableau()

Dim NomTable AsString

Dim TxtSql AsString

NomTable =

Me.DropListTable.SelectedValue

Dim DonneeTable As DataSet

DonneeTable = oracleLocal.LancerRequeteLecture("select * from " & ConfigurationSettings.AppSettings("schema") & NomTable, "DonneeTable")

Me.DataGridTable.DataSource = DonneeTable

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

Dim tc1 As TemplateColumn

Me.DataGridTable.Columns.Add(CreateTemplateColumn(dtColumn.ColumnName, dtColumn.ColumnName))

Next

Me.DataGridTable.DataBind()

EndSub

Class myLabelColumn

Implements ITemplate

Dim _Champ AsString

PublicProperty Champ() AsString

Get

Champ = _Champ

EndGet

Set(ByVal Value AsString)

_Champ = Value

EndSet

EndProperty

Sub instantiatein(ByVal container As Control) Implements ITemplate.InstantiateIn

Dim lbl As Label = New Label

AddHandler lbl.DataBinding, AddressOf BindLabelColumn

container.Controls.Add(lbl)

EndSub

PublicSub BindLabelColumn(ByVal sender AsObject, ByVal e As EventArgs)

Dim lbl As Label = CType(sender, Label)

Dim container As DataGridItem = CType(lbl.NamingContainer, DataGridItem)

Dim strVals AsString

lbl.Text = Convert.ToString(DataBinder.Eval((

CType(container, DataGridItem)).DataItem, _Champ))

lbl.ID = "lbl" & _Champ

EndSub

EndClass

Class myTxtColumn

Implements ITemplate

Dim _Champ AsString

PublicProperty Champ() AsString

Get

Champ = _Champ

EndGet

Set(ByVal Value AsString)

_Champ = Value

EndSet

EndProperty

Sub instantiatein(ByVal container As Control) Implements ITemplate.InstantiateIn

Dim txt As TextBox = New TextBox

Dim hiddentxt As HtmlControls.HtmlInputHidden = New HtmlControls.HtmlInputHidden

AddHandler txt.DataBinding, AddressOf BindTxtColumn

AddHandler hiddentxt.DataBinding, AddressOf BindHiddenColumn

container.Controls.Add(txt)

container.Controls.Add(hiddentxt)

EndSub

PublicSub BindTxtColumn(ByVal sender AsObject, ByVal e As EventArgs)

Dim txt As TextBox = CType(sender, TextBox)

Dim container As DataGridItem = CType(txt.NamingContainer, DataGridItem)

Dim strVals AsString

txt.Text = Convert.ToString(DataBinder.Eval((

CType(container, DataGridItem)).DataItem, _Champ))

txt.ID = "txt" & _Champ

EndSub

PublicSub BindHiddenColumn(ByVal sender AsObject, ByVal e As EventArgs)

Dim hiddentxt As HtmlControls.HtmlInputHidden = CType(sender, HtmlControls.HtmlInputHidden)

Dim container As DataGridItem = CType(hiddentxt.NamingContainer, DataGridItem)

Dim strVals AsString

hiddentxt.Value = Convert.ToString(DataBinder.Eval((

CType(container, DataGridItem)).DataItem, _Champ))

hiddentxt.ID = "hiddentxt" & _Champ

EndSub

EndClass

Function CreateTemplateColumn(ByVal DataFieldValue AsString, ByVal HeaderTextValue AsString) As TemplateColumn

' Create a templateColumn.

Dim tplCol AsNew TemplateColumn

Dim monLabel AsNew myLabelColumn

Dim monTxt AsNew myTxtColumn

monLabel.Champ = DataFieldValue

monTxt.Champ = DataFieldValue

tplCol.ItemTemplate = monLabel

tplCol.EditItemTemplate = monTxt

tplCol.FooterTemplate = monTxt

tplCol.HeaderText = HeaderTextValue

Return tplCol

EndFunction

PrivateSub DropListTable_SelectedIndexChanged(ByVal sender AsObject, ByVal e As System.EventArgs) Handles DropListTable.SelectedIndexChanged

SelectionTable()

EndSub

PrivateSub DataGridTable_EditCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGridTable.EditCommand

Me.DataGridTable.EditItemIndex = e.Item.ItemIndex

AfficherTableau()

EndSub

PrivateSub DataGridTable_UpdateCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGridTable.UpdateCommand

Dim NomTable AsString

Dim TxtSql AsString

Dim reponse AsString

Dim test AsString

Dim TxtHiddenSql AsString

'Prendre les valeurs sélectionné

NomTable =

Me.DropListTable.SelectedValue

Dim DonneeTable As DataSet

DonneeTable = oracleLocal.LancerRequeteLecture("select * from " & ConfigurationSettings.AppSettings("schema") & NomTable, "DonneeTable")

'Construire le where de la commande sql

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

test =

CType(DataGridTable.FindControl("hiddentxt" & dtColumn.ColumnName), HtmlControls.HtmlInputHidden).Value

TxtHiddenSql = TxtHiddenSql & dtColumn.ColumnName & " = " & "'" & test & "'" & " and "

Next

TxtHiddenSql = Left(TxtHiddenSql, Len(TxtHiddenSql) - 4)

'Construire la commande sql

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

TxtSql = TxtSql & dtColumn.ColumnName & " = " & "'" &

CType(e.Item.FindControl("txt" & dtColumn.ColumnName), TextBox).Text & "'" & ", "

Next

TxtSql = Left(TxtSql, Len(TxtSql) - 2)

'Update l'enregistrement

IfNot oracleLocal.LancerRequeteMAJ("Update " & ConfigurationSettings.AppSettings("schema") & NomTable & " set " & TxtSql & " WHERE " & TxtHiddenSql) Then

'Message d'erreur sur la suppresion de l'enregistrement

AfficherErreur(oracleLocal.GetDerniereErreur)

EndIf

Me.DataGridTable.EditItemIndex = -1

AfficherTableau()

EndSub

PrivateSub DataGridTable_CancelCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGridTable.CancelCommand

Me.DataGridTable.EditItemIndex = -1

AfficherTableau()

EndSub

PrivateSub DataGridTable_DeleteCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGridTable.DeleteCommand

Dim NomTable AsString

Dim TxtSql AsString

'Prendre les valeurs sélectionné

NomTable =

Me.DropListTable.SelectedValue

Dim DonneeTable As DataSet

DonneeTable = oracleLocal.LancerRequeteLecture("select * from " & ConfigurationSettings.AppSettings("schema") & NomTable, "DonneeTable")

'Construire la commande sql

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

TxtSql = TxtSql & dtColumn.ColumnName & " = " & "'" &

CType(e.Item.FindControl("lbl" & dtColumn.ColumnName), Label).Text & "'" & " and "

Next

TxtSql = Left(TxtSql, Len(TxtSql) - 4)

'Delete de la table

IfNot oracleLocal.LancerRequeteMAJ("DELETE FROM " & ConfigurationSettings.AppSettings("schema") & NomTable & " WHERE " & TxtSql) Then

'Message d'erreur sur la suppresion de l'enregistrement

AfficherErreur(oracleLocal.GetDerniereErreur)

EndIf

Me.DataGridTable.EditItemIndex = -1

AfficherTableau()

EndSub

PrivateSub AfficherErreur(ByVal Message AsString)

Response.Write(Message)

EndSub

PrivateSub DataGridTable_ItemCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGridTable.ItemCommand

If e.CommandName = "Add" Then

Response.Write("Ajout")

Dim DonneeTable As DataSet

Dim NomTable AsString

Dim TxtSql AsString

'Prendre les valeurs sélectionné

NomTable =

Me.DropListTable.SelectedValue

DonneeTable = oracleLocal.LancerRequeteLecture("select * from " & ConfigurationSettings.AppSettings("schema") & NomTable, "DonneeTable")

'Construire la commande sql

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

TxtSql = TxtSql & " ( " & dtColumn.ColumnName & ", "

Next

TxtSql = Left(TxtSql, Len(TxtSql) - 2)

TxtSql = TxtSql & ") "

ForEach dtColumn As DataColumn In DonneeTable.Tables(0).Columns

TxtSql = TxtSql & "Values ( " &

CType(e.Item.FindControl("txt" & dtColumn.ColumnName), TextBox).Text & ","

Next

TxtSql = Left(TxtSql, Len(TxtSql) - 2)

TxtSql = TxtSql & ") "

'Ajout dans la table

IfNot oracleLocal.LancerRequeteMAJ("Insert into" & NomTable & TxtSql) Then

'Message d'erreur sur l'ajout de l'enregistrement

AfficherErreur(oracleLocal.GetDerniereErreur)

EndIf

Me.DataGridTable.EditItemIndex = e.Item.ItemIndex

AfficherTableau()

EndIf

EndSub

 

PrivateSub DataGridTable_ItemCreated(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGridTable.ItemCreated

Try

Dim btn As Button = CType(e.Item.Cells(1).Controls(0), Button)

Dim monmessage AsNew Message

monmessage.Type = "confirm"

monmessage.ContenuMessage = "Désirez-vous vraiment supprimer cette occurence ?"

monmessage.ActionTrue = ""

monmessage.ActionFalse = "return false;"

btn.Attributes.Add("onclick", monmessage.AfficherMessage())

Catch ex As Exception

EndTry

EndSub

End

Class


Cette discussion est classée dans : web, system, txtsql, datagridtable, dtcolumn


Répondre à ce message

Sujets en rapport avec ce message

Control creer dynamiquement [ par alk ] Alors voila je declare un System.Web.UI.Controlsdans un fichier aspx.cs et je souhaite le voir apparaitre sur ma WebForms cependant je recois une erre Help Problème avec IIS pour un projet ASP [ par bensniper ] j'ai 2 projets que je veux mettre sur un serveur win2000srv je met le 1er projet sur la machine aucun pb tout fct correctement je fais la meme chose p probleme avec Access?! [ par Jula ] salut a tous, je suis débutante et j'ai besoin d'aide:je voudrais me connecter à une bd faite avec MS Access200, je fais donc ça:< problème avec une bd Access [ par Jula ] salut a tous, je suis débutante et j'ai besoin d'aide:je voudrais me connecter à une bd faite avec MS Access200, je fais donc ça:string monConnexionSt Pb de datagrid->pour faire un panier ASP.net C# [ par fabrice83 ] fab83je suis en BTS est mon projet est de réaliser un site de vente g un pb avec mon panier .Voici mon code j'ai une datgrid1qui represente mon catal Fonction UPDATE sur une base Access [ par vince2472 ] Bonjour,Je rencontre un pb : j'ai le message 'Erreur de syntaxe dans l'instruction UPDATE' lorsque je mets ma base à jour (le but étant de la modifier appel de fonction :( [ par yafuka ] bonjour a tous et merci d'avance.Mon probleme est bien simple.je declare une classe page1_2 dans un fichier page1_2.cs (voir ci dessous) contenant un [ASPX][C#] creation d'un webControls Table [ par tobleronne ] ReBonjour, Je fais une boucle afin de remplir un webcontrol Table. mais on me dit "L'argument spécifié n'était pas dans les limites de la plage des va [ASPX][C#] Héritage de System.Web.UI.Page [ par merrick ] bonjouralors voilà, j'ai voulu factoriser des pages qui avait un comportement commun.j'ai ainsi créer une classe abstraite classeMere.cs comme suit:Co Recuperation de valeur dans une datalist [ par drakula ] Salut la compagnie ! Voila j'ai un leger soucis, je voudrais recuperer la valeur d'une checkbox html qui est contenue dans une datalist dont voici le


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales