Ajout Item dans DDL

Résolu
cs_Sabine26 Messages postés 16 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 2 juin 2008 - 5 mai 2008 à 10:20
cs_Sabine26 Messages postés 16 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 2 juin 2008 - 13 mai 2008 à 15:54
Bonjour,

Voilà je souhaiterai ajouter un Itel "Add a new Macro Brick" en début de DDL.
Pour cela je dispose d'un tableau avec un bouton "Update". Quand je clique dessus, une des colonnes pour la ligne cliquée se met en DDL.

Voilà ce que je fais (et qui ne fonctionne pas!):
-----------------------------------------------------------------------------
Protected Sub MappingList_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles MappingList.RowUpdating

Dim AddMacro As ListItem
AddMacro.Value = 0
AddMacro.Text = "Add a new macro-brick"

CType(MappingList.FindControl("ReferenceList"), DropDownList).Items.Insert(0, AddMacro)

End Sub
-----------------------------------------------------------------------

et voilà le code ASP:

-------------------------------------------------------------------------
'
PageSize='<%$ AppSettings:GridViewPageSize %>'
AllowSorting="True">
<Columns>



<%# Eval("SRCLAB")%> - <%#Eval("SRCKEY")%>




<%#Eval("DESTLAB")%> - <%#Eval("DESTKEY")%>

<EditItemTemplate>
' TabIndex="0">

</EditItemTemplate>

</Columns>

--------------------------------------------------------------------------

Je pense que c'est le Ctype qui ne permet pas de retourner ce que je souhaite!

Merci pour votre aide

Sabine

2 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
7 mai 2008 à 16:10
Bonjour,

CType(MappingList.FindControl("ReferenceList"), DropDownList).Items.Insert(0, AddMacro)

MappingList contient une collection de ligne qui contiennent le controle ReferenceList, FindControl ne peux donc savoir quelle controle renvoyer (puiqu'il y en a plusieurs) ...

Tu peux essayer de passer par la propriété items du gridview afin de faire le FindControl sur la ligne désiré, ou tu peux passer par l'événement itemDataBound du gridview (la 2ème solution est la solution habituelle).

Ou sinon, tu peux rajouter ton item dans la partie aspx, avec la propriété appendDataBoundItem à true, je pense que ca fait ce que tu as envie.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
3
cs_Sabine26 Messages postés 16 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 2 juin 2008 1
13 mai 2008 à 15:54
Bonjour,
Excuse moi de répondre à la suite de ce mail, mais j'ai urgemment besoin d'aide.
Je veux éxécuter 2 requetes à la suite et je finis par avoir un "Illegal name/number variable" sur le dernier excecuteNonQuery(), et je comprends pas pkoi, je l'ai déjà fais autre part cette enchainement et ça marche très bien!!!


Voici ma fonction... désolé pour la lisibilité!

Shared Function UpdateMapping(ByVal NAT As String, ByVal SRCKEY As String, ByVal UsrNam As String, ByVal Win_Log As String, ByVal ResCod As String, ByVal HDO As Boolean, ByVal BUM As Boolean, ByVal SLM As Boolean, ByVal RGM As Boolean, ByVal DTM As Boolean, ByVal REP As Boolean, ByVal MAIL As String) As Integer

Dim connectionString As String
Dim queryString As String
Dim queryString2 As String
Dim queryStringHis As String
Dim queryString3 As String
Dim rowsAffected As Integer = 0
Dim rowsAffected2 As Integer = 0

Dim dbConnection As IDbConnection
Dim dbCommand As IDbCommand
Dim dbParam_NAT As IDataParameter
Dim dbParam_SRC As IDataParameter
Dim dbParam_HDO As IDataParameter
Dim dbParam_BUM As IDataParameter
Dim dbParam_SLM As IDataParameter
Dim dbParam_RGM As IDataParameter
Dim dbParam_DTM As IDataParameter
Dim dbParam_REP As IDataParameter
Dim dbParam_MAIL As IDataParameter
Dim dbParam_User As IDataParameter
Dim dbParam_WINLOG As IDataParameter
Dim dbParam_USRNAM As IDataParameter
Dim dbParam_RESCOD As IDataParameter
Dim dbParam_UpdDate As IDataParameter

' Query definition for the history
queryStringHis = _
"INSERT INTO REF_TMS_USR_ROL_HIS(NAT, USR, USR_S_LAB, USR_L_LAB, WIN_LOG, USR_RES, USR_NAM, HDO,BUM, SLM,RGM, DTM, REP,EMAIL, ZT_UPD_BY, ZT_UPD_DATE, ZT_ETL_DATE, ZT_AFFILIATE, ZT_FLUX_ID, ZT_EXEC_ID,ZT_SOURCE_ID)" & _
" SELECT NAT, USR, USR_S_LAB, USR_L_LAB, WIN_LOG, USR_RES, USR_NAM, HDO, BUM, SLM, RGM, DTM, REP, EMAIL, :UPD_BY, :UPD_DATE , ZT_ETL_DATE, ZT_AFFILIATE, ZT_FLUX_ID, ZT_EXEC_ID, ZT_SOURCE_ID FROM REF_TMS_USR_ROL WHERE NAT :NAT AND USR :USR "

' Query definition for the update of REF_TMS_USR_ROL
queryString = "UPDATE REF_TMS_USR_ROL " & _
" SET HDO :HDO, BUM :BUM, SLM = :SLM, RGM = :RGM, DTM = :DTM, REP = :REP, EMAIL = :MAIL,WIN_LOG=:WINLOG, USR_NAM = :USRNAM,USR_RES = :RESCOD " & _
" WHERE NAT :NAT AND USR :USR"

' Query definition for the update of REF_USR
queryString2 = "UPDATE REF_USR " & _
"SET EMAIL= :MAIL" & _
"WHERE NAT= :NAT AND USR_NT_ID= :WINLOG "

' Query definition for REF_LAB
' queryString3 = "UPDATE REF_LAB" & _
' "SET VAL_L_LAB=:USRNAM" & _
'"WHERE VAL=:USR AND NAT=:NAT"


Try
' Retrieve connection string from the configuration file
connectionString = ConfigurationManager.ConnectionStrings("SIMSDWH").ConnectionString
dbConnection = New OracleConnection(connectionString)

dbCommand = dbConnection.CreateCommand()

' To insert into the historic table REF_TMS_USR_ROL_HIS
dbCommand.CommandText = queryStringHis

' Parameters definition
dbParam_NAT = New OracleParameter(":NAT", System.Data.DbType.String)
dbParam_NAT.Value = NAT
dbCommand.Parameters.Add(dbParam_NAT)

dbParam_SRC = New OracleParameter(":USR", System.Data.DbType.String)
dbParam_SRC.Value = SRCKEY
dbCommand.Parameters.Add(dbParam_SRC)

dbParam_User = New OracleParameter(":UPD_BY", System.Data.DbType.String)
dbParam_User.Value = HttpContext.Current.User.Identity.Name
dbCommand.Parameters.Add(dbParam_User)

dbParam_UpdDate = New OracleParameter(":UPD_DATE", System.Data.DbType.Date)
dbParam_UpdDate.Value = Date.Now
dbCommand.Parameters.Add(dbParam_UpdDate)

' Open the connection
dbConnection.Open()
dbCommand.Transaction = dbConnection.BeginTransaction()

' Execute the query for the history
dbCommand.ExecuteNonQuery()

' New parameter for the update query
dbParam_HDO = New OracleParameter(":HDO", System.Data.DbType.Int16)
dbParam_HDO.Value = HDO
dbCommand.Parameters.Add(dbParam_HDO)

dbParam_SLM = New OracleParameter(":SLM", System.Data.DbType.Int16)
dbParam_SLM.Value = SLM
dbCommand.Parameters.Add(dbParam_SLM)

dbParam_DTM = New OracleParameter(":DTM", System.Data.DbType.Int16)
dbParam_DTM.Value = DTM
dbCommand.Parameters.Add(dbParam_DTM)

dbParam_REP = New OracleParameter(":REP", System.Data.DbType.Int16)
dbParam_REP.Value = REP
dbCommand.Parameters.Add(dbParam_REP)

dbParam_BUM = New OracleParameter(":BUM", System.Data.DbType.Int16)
dbParam_BUM.Value = BUM
dbCommand.Parameters.Add(dbParam_BUM)

dbParam_RGM = New OracleParameter(":RGM", System.Data.DbType.Int16)
dbParam_RGM.Value = RGM
dbCommand.Parameters.Add(dbParam_RGM)

dbParam_MAIL = New OracleParameter(":MAIL", System.Data.DbType.String)
dbParam_MAIL.Value = MAIL + "@sanofi-aventis.com"
dbCommand.Parameters.Add(dbParam_MAIL)

dbParam_USRNAM = New OracleParameter(":USRNAM", System.Data.DbType.String)
dbParam_USRNAM.Value = UCase(UsrNam)
dbCommand.Parameters.Add(dbParam_USRNAM)

dbParam_WINLOG = New OracleParameter(":WINLOG", System.Data.DbType.String)
If Win_log = Nothing Then
dbParam_WINLOG.Value = ""
Else
dbParam_WINLOG.Value = UCase(Win_log)
End If
dbCommand.Parameters.Add(dbParam_WINLOG)

dbParam_RESCOD = New OracleParameter(":RESCOD", System.Data.DbType.String)
If ResCod = Nothing Then
dbParam_RESCOD.Value = ""
Else
dbParam_RESCOD.Value = UCase(ResCod)
End If
dbCommand.Parameters.Add(dbParam_RESCOD)

dbCommand.Parameters.Remove(dbParam_User)
dbCommand.Parameters.Remove(dbParam_UpdDate)

' To update table REF_TMS_USR_ROL
dbCommand.CommandText = queryString

rowsAffected = dbCommand.ExecuteNonQuery()

dbCommand.Parameters.Remove(dbParam_RESCOD)
dbCommand.Parameters.Remove(dbParam_RGM)
dbCommand.Parameters.Remove(dbParam_BUM)
dbCommand.Parameters.Remove(dbParam_REP)
dbCommand.Parameters.Remove(dbParam_DTM)
dbCommand.Parameters.Remove(dbParam_SLM)
dbCommand.Parameters.Remove(dbParam_HDO)
dbCommand.Parameters.Remove(dbParam_SRC)
dbCommand.Parameters.Remove(dbParam_USRNAM)

dbCommand.CommandText = queryString2

dbCommand.ExecuteNonQuery()

dbCommand.Transaction.Commit()

Catch e As NullReferenceException
rowsAffected = 0
'Enregistrement dans le log
logWriter.Write(Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name & "->" & Reflection.MethodBase.GetCurrentMethod().Name & " : " & e.Message)

Catch e As OracleException
rowsAffected = 0
'Enregistrement dans le log
logWriter.Write(Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name & "->" & Reflection.MethodBase.GetCurrentMethod().Name & " : " & e.Message)

If Not dbCommand Is Nothing Then
dbCommand.Transaction.Rollback()
End If
Finally

If Not dbConnection Is Nothing Then
If dbConnection.State <> ConnectionState.Closed Then
dbConnection.Close()
End If
End If

End Try

Return rowsAffected

End Function
0
Rejoignez-nous