<%@ Page Language="VB" %> <script runat="server"> Sub Select_Change(ByVal sender As Object, ByVal e As EventArgs) 'Message Message.Text = "You selected: " & LinksTreeView.SelectedNode.Text End Sub Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Not Request.Form("__MyEventArgument") = "" Then Try Dim Tn As WebControl = CType(sender, WebControl) Catch ex As Exception Message.Text = "Ca a pas marché " End Try If CType(Request.Form("__MyEventArgument"), Boolean) Then Message.Text &= "Page PostBack by checking the CheckBox" Else Message.Text &= "Page PostBack by unchecking the CheckBox" End If End If End Sub Private Function WriteScript(ByVal NodeColl As TreeNodeCollection, ByRef i As Integer) As String If NodeColl.Count = 0 Then i += 1 : Return "" : Exit Function Dim _WriteScript As String = "" For Each Node As TreeNode In NodeColl If Node.ShowCheckBox Then _WriteScript &= " theForm.LinksTreeViewn" & i & "CheckBox.setAttribute(""onClick""," _WriteScript &= """__MydoPostBack(" _WriteScript &= "'" & "LinksTreeViewn" & i & "CheckBox" & "'" _WriteScript &= "," _WriteScript &= "'" & Node.ValuePath & "'" _WriteScript &= "," _WriteScript &= "theForm." & "LinksTreeViewn" & i & "CheckBox" & ".checked" _WriteScript &= " );"");" & vbNewLine End If i += 1 If Not Node.ChildNodes.Count = 0 Then _WriteScript &= WriteScript(Node.ChildNodes, i) Next Return _WriteScript End Function Sub LinksTreeView_Load(ByVal sender As Object, ByVal e As System.EventArgs) Dim Script As String Script = " " & vbNewLine Script &= " " & vbNewLine Script &= " " & vbNewLine Script &= vbNewLine Script &= "<" & "script language=""javascript"" type=""text/javascript"">" & vbNewLine Script &= " <!--" & vbNewLine Script &= vbNewLine Script &" var theForm document.forms['Form1'];" & vbNewLine Script &= vbNewLine Script &= " function __MydoPostBack(eventTarget, eventArgument, MyEventArgument)" & vbNewLine Script &= " {" & vbNewLine Script &" if (theForm.onsubmit null || theForm.onsubmit())" & vbNewLine Script &= " {" & vbNewLine Script &" theForm.__EVENTTARGET.value eventTarget;" & vbNewLine Script &" theForm.__EVENTARGUMENT.value eventArgument;" & vbNewLine Script &" theForm.__MyEventArgument.value MyEventArgument;" & vbNewLine Script &= " theForm.submit();" & vbNewLine Script &= " }" & vbNewLine Script &= " }" & vbNewLine Script &= vbNewLine Script &= WriteScript(LinksTreeView.Nodes,0) Script &= " // -->" & vbNewLine Script &= "</" & "script>" 'J'ai pas le droit d'ecrire </ script> un bug de la beta je pense Page.RegisterStartupScript("__MyDoPostBack", Script) End Sub </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Untitled Page</title> </head> <form id="Form1" runat="Server"> <Nodes> </Nodes> </form> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Function TreeNodeJustChecked(ByVal NodeColl As TreeNodeCollection, ByVal NodePath As String) As TreeNode If NodeColl.Count = 0 Then Return Nothing Exit Function End If For Each Node As TreeNode In NodeColl If Not Node.ChildNodes.Count = 0 Then Dim _TreeNodeJustChecked As TreeNode = TreeNodeJustChecked(Node.ChildNodes, NodePath) If _TreeNodeJustChecked Isnot Nothing Then Return _TreeNodeJustChecked Exit For End If End If If Node.ValuePath = NodePath Then Return Node Exit For End If Next Return Nothing End Function
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Request.Form("__EVENTTARGET") = LinksTreeView.ClientID & "Checked" Then Dim TheNode As TreeNode = TreeNodeJustChecked(LinksTreeView.Nodes, Request.Form("__EVENTARGUMENT")) Message.Text &= " " & TheNode.Checked Message.Text &= " " & TheNode.Text If TheNode IsNot Nothing Then If TheNode.Checked Then Message.Text = "Page PostBack by checking " & TheNode.Text Else Message.Text = "Page PostBack by unchecking " & TheNode.Text End If Else Message.Text = "The PostBack was generated by" & Request.Form("__EVENTARGUMENT").Split( System.Convert.ToChar("/"))( Request.Form("__EVENTARGUMENT").Split( System.Convert.ToChar("/")).Length - 1) End If End If End Sub
<HTML> <FORM id="Form1" action="Default2.aspx" method="post"> <script language="javascript" type="text/javascript"> //Fonctionne seulement sur Firefox document.forms['Form1'].LinksTreeViewn13CheckBox.setAttribute("onClick","alert('bonjour');"); //Ne fonctionne ni sur IE ni sur Firefox alors que d'apres w3c, ca fonctionne comme ca : http://www.w3.org/TR/REC-html40/interact/scripts.html //document.forms['Form1'].LinksTreeViewn13CheckBox.onclick = alert('bonjour'); </script> </FORM> </HTML>
Private Function WriteScript(ByVal NodeColl As TreeNodeCollection, ByVal IDTreeview As String, ByRef i As Integer) As String If NodeColl.Count = 0 Then i += 1 : Return "" : Exit Function Dim _WriteScript As String = "" For Each Node As TreeNode In NodeColl If Node.ShowCheckBox Then _WriteScript &" theForm." & IDTreeview & "n" & i & "CheckBox.onclick function(){" _WriteScript &= "__doPostBack(" _WriteScript &= """" & IDTreeview & "Checked""" _WriteScript &= "," _WriteScript &= """" & Node.ValuePath & """" _WriteScript &= " )};" & vbNewLine End If i += 1 If Not Node.ChildNodes.Count = 0 Then _WriteScript &= WriteScript(Node.ChildNodes, IDTreeview, i) Next Return _WriteScript End Function
Private Function WriteScript(ByVal NodeColl As TreeNodeCollection, ByVal IDTreeview As String, ByRef i As Integer) As String If NodeColl.Count = 0 Then i += 1 : Return "" : Exit Function Dim _WriteScript As String = "" For Each Node As TreeNode In NodeColl If Node.ShowCheckBox Then _WriteScript &" theForm." & IDTreeview & "n" & i & "CheckBox.onclick function(){" _WriteScript &= "__doPostBack(" _WriteScript &= """" & IDTreeview & "Checked""" _WriteScript &= "," _WriteScript &= """" & Node.ValuePath & """" _WriteScript &= " )};" & vbNewLine End If i += 1 If Not Node.ChildNodes.Count = 0 Then _WriteScript &= WriteScript(Node.ChildNodes, IDTreeview, i) Next Return _WriteScript End Function