Hi there am creating a simple DataFormWebpart which outputs XML e.g the one given below.
<dsQueryResponse>
<Rows>
<Row Title="Emp1" Status="Clerk" Description="Just a clerk" />
<Row Title="Emp2" Status="Supervisor" Description="Sup for Electrics" />
<Row Title="Emp3" Status="Manger" Description="Man for Services" />
</Rows>
</dsQueryResponse>
The problem I am having is I cant see the output . I have tried to put a basics XSL but no joy. I tried to bring it in SPD but no joy. How do i know the below will work ? See below full code. I seem to get it wrong but am not sure
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using System.Xml;
namespace SharePointProject1.DATAFORM.EDataFormWebPart
{
[ToolboxItemAttribute(false)]
public class EDataFormWebPart : Microsoft.SharePoint.WebPartPages.DataFormWebPart
{
protected override void CreateChildControls()
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
try
{
this.DataSource = sorce();
this.DataBind();
}
catch (Exception ex)
{
this.Controls.Add(new LiteralControl("ERROR: " + ex.Message));
}
}
DataTable GetResults()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title", typeof(string));
dt.Columns.Add("Status", typeof(string));
dt.Columns.Add("Description", typeof(string));
DataRow dr;
dr = dt.NewRow();
dr["Title"] = "Emp1";
dr["Status"] = "Clerk";
dr["Description"] = "Just a clerk";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Title"] = "Emp2";
dr["Status"] = "Supervisor";
dr["Description"] = "Sup for Electrics";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Title"] = "Emp3";
dr["Status"] = "Manger";
dr["Description"] = "Man for Services";
dt.Rows.Add(dr);
return dt;
}
XmlDocument CreateXMLFromDT(DataTable dt)
{
XmlDocument doc = new XmlDocument();
XmlNode queryResponse = doc.AppendChild(doc.CreateElement("dsQueryResponse"));
XmlNode root = queryResponse.AppendChild(doc.CreateElement("Rows"));
foreach (DataRow row in dt.Rows)
{
XmlElement rowNode = doc.CreateElement("Row");
foreach (DataColumn col in row.Table.Columns)
{
string val = row[col].ToString();
XmlAttribute att = doc.CreateAttribute(col.ColumnName);
att.Value = val;
rowNode.Attributes.Append(att);
}
root.AppendChild(rowNode);
}
doc.DocumentElement.AppendChild(root);
return doc;
}
XmlDataSource sorce()
{
XmlDataSource source1 = new XmlDataSource();
DataTable dt = new DataTable();
XmlDocument XMLFromDT = new XmlDocument();
dt = GetResults();
XMLFromDT = CreateXMLFromDT(dt);
source1.Data = XMLFromDT.InnerXml;
return source1;
}
}
}
<dsQueryResponse>
<Rows>
<Row Title="Emp1" Status="Clerk" Description="Just a clerk" />
<Row Title="Emp2" Status="Supervisor" Description="Sup for Electrics" />
<Row Title="Emp3" Status="Manger" Description="Man for Services" />
</Rows>
</dsQueryResponse>
The problem I am having is I cant see the output . I have tried to put a basics XSL but no joy. I tried to bring it in SPD but no joy. How do i know the below will work ? See below full code. I seem to get it wrong but am not sure
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Data;
using System.Xml;
namespace SharePointProject1.DATAFORM.EDataFormWebPart
{
[ToolboxItemAttribute(false)]
public class EDataFormWebPart : Microsoft.SharePoint.WebPartPages.DataFormWebPart
{
protected override void CreateChildControls()
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
try
{
this.DataSource = sorce();
this.DataBind();
}
catch (Exception ex)
{
this.Controls.Add(new LiteralControl("ERROR: " + ex.Message));
}
}
DataTable GetResults()
{
DataTable dt = new DataTable();
dt.Columns.Add("Title", typeof(string));
dt.Columns.Add("Status", typeof(string));
dt.Columns.Add("Description", typeof(string));
DataRow dr;
dr = dt.NewRow();
dr["Title"] = "Emp1";
dr["Status"] = "Clerk";
dr["Description"] = "Just a clerk";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Title"] = "Emp2";
dr["Status"] = "Supervisor";
dr["Description"] = "Sup for Electrics";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Title"] = "Emp3";
dr["Status"] = "Manger";
dr["Description"] = "Man for Services";
dt.Rows.Add(dr);
return dt;
}
XmlDocument CreateXMLFromDT(DataTable dt)
{
XmlDocument doc = new XmlDocument();
XmlNode queryResponse = doc.AppendChild(doc.CreateElement("dsQueryResponse"));
XmlNode root = queryResponse.AppendChild(doc.CreateElement("Rows"));
foreach (DataRow row in dt.Rows)
{
XmlElement rowNode = doc.CreateElement("Row");
foreach (DataColumn col in row.Table.Columns)
{
string val = row[col].ToString();
XmlAttribute att = doc.CreateAttribute(col.ColumnName);
att.Value = val;
rowNode.Attributes.Append(att);
}
root.AppendChild(rowNode);
}
doc.DocumentElement.AppendChild(root);
return doc;
}
XmlDataSource sorce()
{
XmlDataSource source1 = new XmlDataSource();
DataTable dt = new DataTable();
XmlDocument XMLFromDT = new XmlDocument();
dt = GetResults();
XMLFromDT = CreateXMLFromDT(dt);
source1.Data = XMLFromDT.InnerXml;
return source1;
}
}
}