troubleshooting Question

Binding dynamic TreeView node selction to a DetailsView using placeholder

Avatar of mak36
mak36 asked on
3 Comments1 Solution3765 ViewsLast Modified:
Hi Experts,
I am a newbie to ASP.NET so may be I am doing something wrong or there is a bug somewhere.
I am using IDE : Visual Web Developer 2005 Exrpess; OS= Windows XP Professional;
Languange used VB.NET; Database being used MySQL Server 5.0 for my database, using  MySQL Connector/ODBC 3.51.

Basically I have a TreeView Control which I have created programmatically.that I want to bind to a Details view which shows the datatable record for theslected TreeView node in the Details View.
This TreeView appears to work when
'Declared the variable below  
<script runat=server>  
 Public TreeNodeValue As String

'TreeView Code goes here left out for clarity...

Protected Sub TreeViewCommondata_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
            TreeNodeValue = TreeViewCommondata.SelectedNode.Value
 Response.Write("You selected TreeViewNode value      : " & _TreeViewCommondata.SelectedNode.Value)
        End Sub
The above Response.Write renders to the webpage with the selected TreeView control and dsplays the String for the TreeNode selected.

Now I wanted to bind the selkected TreeViewnode  to a DetailsView so basially draggged Sql Datasource  to webpage containing TreeViewcontrol and also dragged the DetalisView on this webpage. Configured the datasource for SQLDatasource)

The mark up is as follows:

    <form id="form1" runat="server">
    <!-- The TreeView control associates the OnTreeNodePopulate method with an event handler named_
     Node_Populate -->  
    &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">
                <asp:TreeNode Text="Common data" PopulateOnDemand=True Value="0" >
            <ParentNodeStyle Font-Bold="False" />
            <HoverNodeStyle Font-Underline="True" ForeColor="#5555DD" />
            <SelectedNodeStyle Font-Underline="True" ForeColor="#5555DD" HorizontalPadding="0px"
                VerticalPadding="0px" />
            <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="0px"
                NodeSpacing="0px" VerticalPadding="0px" />
        <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" BackColor="#CCCCCC"
            BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="4" CellSpacing="2"
            DataSourceID="SqlDataSource1" ForeColor="Black" Height="50px" Width="700px" style="left: 309px; position: absolute; top: 34px">
            <FooterStyle BackColor="#CCCCCC" />
            <EditRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="White" />
            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:bier_compact_test5ConnectionString %>"
            ProviderName="<%$ ConnectionStrings:bier_compact_test5ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM commondata WHERE Name=?TreeNodeValue">
                <asp:ControlParameter ControlID="TreeViewCommondata" Name="Name" PropertyName="SelectedValue"
                    Type="String" />

When I run the page I ge the Treeview 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 markup and replace the ?TeeNodeValue with 'Filed name' from the MySQl table a DetalsView 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,
I am obviously doing some not correct of missing something, prorblay straight forward for a  Experets-Exhange Guru.

Any examples,  pointers and help would be deply appreciated.




Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros