Dear experts,
I have RadGrid1 and RadGrid2, both of them synchronised (thanks to Lenny_shp).
When I put borders in both grids, I see that RadGrid1's height is increasing while expanding the master rows : this is due to a border-width around child rows. So the more parent rows you expand and the more the radgrid1 increases in height.
I was asked to have the both radgrids synchronised, that is : having the same height for each row in both grids.
Is it possible to have vertical lines aligned when expanding master rows in RadGrid1 ?
GetConnectionString() method must be changed in the code below.
One strange thing : if I put "autogeneratecolumns = false" and add <columns> ... </columns> in RadGrid1, then I have the same height as RadGrid2. But then the problem is : the cells in RadGrid1 are not aligned when rows are expanded ... The dream is to get the both grides aligned and also the cells in RadGrid1 aligned, expanded or not ... I'm trying ...
thanks,
Panin
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadGridSolutionTelerik.aspx.cs" Inherits="RadGridSolutionTelerik" %> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title></title> |
| <style type="text/css"> |
| .StaticColumn |
| { |
| font-family: Arial,Verdana, Helvetica; |
| font-size: 14px; |
| font-weight: normal; |
| border: none; |
| position: relative; |
| } |
| </style> |
| </head> |
| <body> |
| <form runat="server" id="mainForm" method="post"> |
| <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> |
| <!-- content start --> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid2" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <table border="1" cellspacing="0" cellpadding="0" style="height:100%"> |
| <tr> |
| <td style="vertical-align:top;height:100%"> |
| <telerik:RadGrid ID="RadGrid1" OnPreRender="RadGrid1_PreRender" AutoGenerateColumns="False" runat="server" DataSourceID="SqlDataSource1" OnColumnCreated="RadGrid1_ColumnCreated" |
| OnItemCreated="RadGrid1_ItemCreated" OnItemDataBound="RadGrid1_ItemDataBound" GridLines="Both"> |
| <MasterTableView HierarchyDefaultExpanded="false" EnableNoRecordsTemplate="false" HierarchyLoadMode="ServerBind" AllowSorting="true" Width="800px" |
| DataKeyNames="EmployeeID"> |
| <ItemStyle Wrap="false" Width="200px" Height="17px" BorderStyle="Groove" BorderWidth="1"/> |
| <AlternatingItemStyle Wrap="false" Width="200px" Height="17px" BorderStyle="Groove" BorderWidth="1"/> |
| <HeaderStyle Wrap="false" Width="1500px"/> |
| <SelfHierarchySettings ParentKeyName="ReportsTo" KeyName="EmployeeID"/> |
| <GroupHeaderItemStyle BorderColor="red" BorderWidth="0"/> |
| <ExpandCollapseColumn ItemStyle-BackColor="red"></ExpandCollapseColumn> |
| <GroupHeaderItemStyle BackColor="green" /> |
| <RowIndicatorColumn HeaderStyle-BackColor="Blue"></RowIndicatorColumn> |
| <Columns> |
| <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" |
| DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" |
| DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings AllowExpandCollapse="true"> |
| </ClientSettings> |
| </telerik:RadGrid> |
| </td> |
| <td class="StaticColumn" style="vertical-align:top;height:100%;"> |
| <telerik:RadGrid ID="RadGrid2" ShowStatusBar="true" |
| runat="server" AutoGenerateColumns="False" PageSize="10" AllowSorting="True" AllowMultiRowSelection="False" Width="800px" |
| AllowPaging="false" GridLines="Both"> |
| <PagerStyle Mode="NumericPages"></PagerStyle> |
| <MasterTableView ItemStyle-Wrap="false" Height="20px" HierarchyLoadMode="ServerBind" CanRetrieveAllData="true"> |
| <ItemStyle Wrap="false" Width="200px" Height="17px" BorderWidth="1" BorderStyle="Groove" /> |
| <AlternatingItemStyle Wrap="false" Width="200px" Height="17px" BorderWidth="1" BorderStyle="Groove"/> |
| <Columns> |
| <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" |
| DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" |
| DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" |
| DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" |
| DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" |
| DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" |
| DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="EmployeeID" HeaderText="EmployeeID" HeaderButtonType="TextButton" |
| DataField="EmployeeID" UniqueName="EmployeeID" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="LastName" HeaderText="LastName" HeaderButtonType="TextButton" |
| DataField="LastName" UniqueName="LastName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="FirstName" HeaderButtonType="TextButton" |
| DataField="FirstName" UniqueName="FirstName" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
| DataField="Title" UniqueName="Title" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| <telerik:GridBoundColumn SortExpression="ReportsTo" HeaderText="ReportsTo" HeaderButtonType="TextButton" |
| DataField="ReportsTo" UniqueName="ReportsTo" ItemStyle-Wrap="false" ItemStyle-Width="200px" ItemStyle-Height="17px" ItemStyle-BorderWidth="1" ItemStyle-BorderStyle="Groove"> |
| </telerik:GridBoundColumn> |
| </Columns> |
| </MasterTableView> |
| <clientsettings allowexpandcollapse="false" > |
| <Scrolling AllowScroll="true" UseStaticHeaders="True"></Scrolling> |
| </clientsettings> |
| </telerik:RadGrid> |
| </td> |
| </tr> |
| </table> |
| <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" |
| ProviderName="System.Data.SqlClient" SelectCommand="SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees" |
| runat="server"></asp:SqlDataSource> |
| <!-- content end --> |
| </form> |
| </body> |
| </html> |
| using System; |
| using System.Collections.Generic; |
| using System.Linq; |
| using System.Web; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using Telerik.Web.UI; |
| using System.Reflection; |
| using System.Data; |
| using System.Data.SqlClient; |
| public partial class RadGridSolutionTelerik : System.Web.UI.Page |
| { |
| public void Page_Load(object sender, EventArgs e) |
| { |
| bindGrid2(); |
| if (Assembly.GetAssembly(typeof(ScriptManager)).FullName.IndexOf("3.5") != -1) |
| { |
| RadGrid1.MasterTableView.FilterExpression = @"it[""ReportsTo""] = Convert.DBNull"; |
| } |
| else |
| { |
| RadGrid1.MasterTableView.FilterExpression = "ReportsTo IS NULL"; |
| } |
| } |
| public void Page_PreRenderComplete(object sender, EventArgs e) |
| { |
| HideExpandColumnRecursive(RadGrid1.MasterTableView); |
| string ActualNodes = string.Empty; |
| foreach (GridDataItem dataItem in RadGrid1.Items) |
| { |
| if (dataItem.Visible) |
| { |
| ActualNodes += dataItem["EmployeeID"].Text + ","; |
| } |
| } |
| if (ActualNodes.Length > 0) |
| ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); |
| RadGrid2.Controls.Clear(); |
| RadGrid2.DataSource = getDetails(ActualNodes); |
| RadGrid2.DataBind(); |
| } |
| public void HideExpandColumnRecursive(GridTableView tableView) |
| { |
| GridItem[] nestedViewItems = tableView.GetItems(GridItemType.NestedView); |
| foreach (GridNestedViewItem nestedViewItem in nestedViewItems) |
| { |
| foreach (GridTableView nestedView in nestedViewItem.NestedTableViews) |
| { |
| nestedView.Style["border"] = "0"; |
| Button MyExpandCollapseButton = (Button)nestedView.ParentItem.FindControl("MyExpandCollapseButton"); |
| if (nestedView.Items.Count == 0) |
| { |
| if (MyExpandCollapseButton != null) |
| { |
| MyExpandCollapseButton.Style["visibility"] = "hidden"; |
| } |
| nestedViewItem.Visible = false; |
| } |
| else |
| { |
| if (MyExpandCollapseButton != null) |
| { |
| MyExpandCollapseButton.Style.Remove("visibility"); |
| } |
| } |
| if (nestedView.HasDetailTables) |
| { |
| HideExpandColumnRecursive(nestedView); |
| } |
| } |
| } |
| } |
| protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) |
| { |
| CreateExpandCollapseButton(e.Item, "EmployeeID"); |
| if (e.Item is GridHeaderItem && e.Item.OwnerTableView != RadGrid1.MasterTableView) |
| { |
| e.Item.Style["display"] = "none"; |
| } |
| if (e.Item is GridNestedViewItem) |
| { |
| e.Item.Cells[0].Visible = false; |
| } |
| } |
| protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e) |
| { |
| if (e.Column is GridExpandColumn) |
| { |
| e.Column.Visible = false; |
| } |
| else if (e.Column is GridBoundColumn) |
| { |
| e.Column.HeaderStyle.Width = Unit.Pixel(100); |
| } |
| } |
| protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
| { |
| CreateExpandCollapseButton(e.Item, "EmployeeID"); |
| } |
| public void CreateExpandCollapseButton(GridItem item, string columnUniqueName) |
| { |
| if (item is GridDataItem) |
| { |
| if (item.FindControl("MyExpandCollapseButton") == null) |
| { |
| Button button = new Button(); |
| button.Click += new EventHandler(button_Click); |
| button.CommandName = "ExpandCollapse"; |
| button.CssClass = (item.Expanded) ? "rgCollapse" : "rgExpand"; |
| button.ID = "MyExpandCollapseButton"; |
| if (item.OwnerTableView.HierarchyLoadMode == GridChildLoadMode.Client) |
| { |
| string script = String.Format(@"$find(""{0}"")._toggleExpand(this, event); return false;", item.Parent.Parent.ClientID); |
| button.OnClientClick = script; |
| } |
| /* |
| int level = item.ItemIndexHierarchical.Split(':').Length; |
| if (level > 1) |
| { |
| button.Style["margin-left"] = level + 10 + "px"; |
| button.Style["height"] = "15px"; |
| } |
| */ |
| TableCell cell = ((GridDataItem)item)[columnUniqueName]; |
| cell.Controls.Add(button); |
| //LiteralControl liSpace = new LiteralControl(" "); |
| //cell.Controls.Add(liSpace); |
| cell.Controls.Add(new LiteralControl(((GridDataItem)item).GetDataKeyValue(columnUniqueName).ToString())); |
| cell.Style["height"] = "15px"; |
| } |
| } |
| } |
| protected void RadGrid1_PreRender(object sender, EventArgs e) |
| { |
| string ActualNodes = string.Empty; |
| foreach (GridDataItem dataItem in RadGrid1.Items) |
| { |
| if (dataItem.Visible) |
| { |
| ActualNodes += dataItem["EmployeeID"].Text + ","; |
| } |
| } |
| if (ActualNodes.Length > 0) |
| ActualNodesActualNodes = ActualNodes.Substring(0, ActualNodes.Length - 1); |
| RadGrid2.Controls.Clear(); |
| RadGrid2.DataSource = getDetails(ActualNodes); |
| RadGrid2.DataBind(); |
| //Response.Write("<script> alert(" + sTest + ");</script>"); |
| } |
| void button_Click(object sender, EventArgs e) |
| { |
| ((Button)sender).CssClass = (((Button)sender).CssClass == "rgExpand") ? "rgCollapse" : "rgExpand"; |
| } |
| private void bindGrid2() |
| { |
| RadGrid2.Controls.Clear(); |
| string initialNodes = string.Empty; |
| for (int m = 0; m < RadGrid1.Items.Count; m++) |
| { |
| if (!RadGrid1.Items[m]["EmployeeID"].Text.ToLower().Equals(" ") && RadGrid1.Items[m].Visible) |
| initialNodes += RadGrid1.Items[m]["EmployeeID"].Text + ","; |
| } |
| if (initialNodes.Length > 0) |
| { |
| RadGrid2.DataSource = getEmployees(initialNodes.Substring(0, initialNodes.Length - 1)); |
| } |
| else |
| RadGrid2.DataSource = getEmployees(""); |
| RadGrid2.DataBind(); |
| } |
| private DataView getEmployees(string initialNodes) |
| { |
| DataSet ds = new DataSet(); |
| string sqlFinal = string.Empty; |
| if (!initialNodes.Equals(string.Empty)) |
| { |
| sqlFinal = "Where EmployeeID in (" + initialNodes + ")"; |
| } |
| using (SqlConnection conn = new SqlConnection()) |
| { |
| conn.ConnectionString = GetConnectionString(); |
| SqlCommand cmd = new SqlCommand("SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] " + sqlFinal, conn); |
| conn.Open(); |
| SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); |
| sqlAdapter.Fill(ds); |
| } |
| DataView dv = new DataView(ds.Tables[0]); |
| return dv; |
| } |
| private DataTable getChildNodesByID(string ParentID) |
| { |
| DataSet ds = new DataSet(); |
| string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where ReportsTo = " + ParentID; |
| using (SqlConnection conn = new SqlConnection()) |
| { |
| conn.ConnectionString = GetConnectionString(); |
| SqlCommand cmd = new SqlCommand(sql, conn); |
| conn.Open(); |
| SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); |
| sqlAdapter.Fill(ds); |
| } |
| DataTable dt = new DataTable(); |
| if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) |
| return ds.Tables[0]; |
| else |
| return null; |
| } |
| private DataView getDetails(string ActualNodes) |
| { |
| DataSet ds = new DataSet(); |
| //string noeuds = ActualNodes.Substring(0, ActualNodes.Length - 1); |
| string[] tabNoeuds = ActualNodes.Split(','); |
| string swhen = " CASE "; |
| for (int i = 0; i < tabNoeuds.Length; i++) |
| { |
| swhen += " WHEN EmployeeID = " + tabNoeuds[i] + " THEN " + (i + 1) + " "; |
| } |
| swhen += " END "; |
| string sql = "SELECT [EmployeeID], [LastName], [FirstName], [Title], [ReportsTo] FROM [Employees] Where EmployeeID in (" + ActualNodes + ")"; |
| sql += " ORDER BY " + swhen; |
| using (SqlConnection conn = new SqlConnection()) |
| { |
| conn.ConnectionString = GetConnectionString(); |
| SqlCommand cmd = new SqlCommand(sql, conn); |
| conn.Open(); |
| SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd); |
| sqlAdapter.Fill(ds); |
| } |
| DataView dv = new DataView(ds.Tables[0]); |
| return dv; |
| } |
| static private string GetConnectionString() |
| { |
| return "server=STATION00374;database=Northwind;Integrated Security=SSPI;"; |
| } |
| } |