471,852 Members | 1,356 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,852 software developers and data experts.

Dynamic TreeView selection binding to DetailsView using sqlDataSource in ASP.NET 2.0

Hi Experts,

Please help, I am a newbie to ASP.NET 2.0 may be I am doing something wrong or there may be a bug somewhere.

Basically I have a TreeView Control which I have created programmatically. And I want to bind the selection of a TreeNode (which is a record) from the database) to a DetailsView which shows the datatable record for the selected TreeView node in the Details View.

I am using IDE : Visual Web Developer 2005 Express; OS= Windows XP Professional;
Language used VB.NET; Database being used MySQL Server 5.0, for my database, using MySQL Connector/ODBC 3.51 and also installed MYSQL Connector/Net

The TreeView appears to work when
'Declared the variable below
<script runat=server>
Public TreeNodeValue As String

[TreeView Code goes here, can be provided if requested]
' left out for clarity...

'Event Handler code to display TreeViewNode selection
Expand|Select|Wrap|Line Numbers
  1. Protected Sub TreeViewCommondata_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
  2. TreeNodeValue = TreeViewCommondata.SelectedNode.Value
  3. Response.Write("You selected TreeViewNode value : " & _TreeViewCommondata.SelectedNode.Value)
  4. End Sub

When at run time, when the TreeNode is selected the above Response.Write renders to the webpage with the selected TreeView control and displays the String for the TreeNode selected.

Now I want to bind the selected TreeView node to a DetailsView so I basically draggged SqlDatasource to webpage containing TreeViewcontrol and also dragged the DetalisView on this webpage. Configured the datasource for SQLDatasource to my MySQL database)

Also the markup is as follows:
Expand|Select|Wrap|Line Numbers
  1. <body>
  2. <form id="form1" runat="server">
  3. <div> 
  4. <!-- The TreeView control associates the OnTreeNodePopulate method with an event handler named_
  5. Node_Populate --> 
  6. &nbsp;<asp:TreeView Runat="Server" ExpandImageUrl="Images/closed.gif" CollapseImageUrl="Images/open.gif" OnTreeNodePopulate="Node_Populate" ID="TreeViewCommondata" ImageSet="Simple" ShowLines="True" NodeWrap="True" Width="260px" OnSelectedNodeChanged="TreeViewCommondata_SelectedNodeChanged" OnDataBinding="TreeViewCommondata_SelectedNodeChanged" OnDataBound="TreeViewCommondata_SelectedNodeChanged">
  7. <Nodes>
  8. <asp:TreeNode Text="Common data" PopulateOnDemand=True Value="0" >
  9. </asp:TreeNode>
  10. </Nodes>
  11. <ParentNodeStyle Font-Bold="False" />
  12. <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
  13. <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
  14. VerticalPadding="0px" />
  15. <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="0px"
  16. NodeSpacing="0px" VerticalPadding="0px" />
  17. </asp:TreeView>
  18. &nbsp;&nbsp;
  19. </div>
  20. <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" BackColor="#CCCCCC"
  21. BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2"
  22. DataSourceID="SqlDataSource1" ForeColor="Black" Height="50px" Width="700px" style="left: 309px; position: absolute; top: 34px">
  23. <FooterStyle BackColor="#CCCCCC" />
  24. <EditRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
  25. <RowStyle BackColor="White" />
  26. <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
  27. <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
  28. </asp:DetailsView>
  29. <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:bier_compact_test5ConnectionString %>"
  30. ProviderName="<%$ ConnectionStrings:bier_compact_test5ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM commondata WHERE Name=?TreeNodeValue">
  31. <SelectParameters>
  32. <asp:ControlParameter ControlID="TreeViewCommondata" Name="Name" PropertyName="SelectedValue"
  33. Type="String" />
  34. </SelectParameters>
  35. </asp:SqlDataSource>
  36. </form>
  37. </body>
When I run the page I get the TreeView control on the webpage, however when I select a node I get the error:-
"ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.37-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TreeNodeValue' at line 1"

However, if I hard code the mark-up and replace the ?TreeNodeValue with 'Field name' from the MySQL table a DetailsView is displayed albeit fixed to that field.

I have seen previous example s on the Internet using SQL Server which uses @ as the placeholder and assumed it would be a matter of using ? for MySQL.

Maybe it's a postback thing I am not understanding, or is it a page life-cycle issue?
I have seen on some forums that this maybe a bug with MySQL connector regarding passing value parameters. However, I just do not have the knowledge at the moment for a workaround. Maybe using the ObjectDataSource object? I don’t know?

Maybe doing some not correct of missing something, probably straight forward for a experienced developers.

Any examples, pointers and help/guidance would be deeply appreciated.


Nov 1 '07 #1
2 5360
3,406 Expert 2GB
Hi Martin,

Your question has been moved to the .NET Forum as it is not an appropriate question for the ASP Forum as per the Posting Guidelines.
The ASP Forum is for classic ASP and VBScript questions and answers, .NET and it's related components/languages are discussed in this forum.

Nov 2 '07 #2
4,871 Expert 4TB
Suggest searching the site first to see if you an answer, we get many posts about treeviews.
Nov 2 '07 #3

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

2 posts views Thread by Dabbler | last post: by
3 posts views Thread by chrisn | last post: by
2 posts views Thread by bmayer | last post: by
2 posts views Thread by David Lozzi | last post: by
4 posts views Thread by Mark Olbert | last post: by
reply views Thread by gsauns | last post: by
reply views Thread by NeoPa | last post: by
reply views Thread by aboka | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.