Step 1: Design a page like as follows
Step 2: Make Test.xml like as follows
Step 3: on code behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Xml;
namespace XmlDemo
{
public partial class XmlDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region -OnLoad-
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("Test.xml"));
Session["Dataset"] = ds;
grdXMLDemo.DataSource = ds;
grdXMLDemo.DataBind();
#endregion
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
int status=Convert.ToInt32(lblStatus.Text);
if (status==1)
{
InsertNewRecord();
}
else
{
UpdateRecords();
}
}
#region -Update Record-
public void UpdateRecords()
{
if (Session["Question_Id"] != null)
{
int Question_id = Convert.ToInt32(Session["Question_Id"]);
DataSet dsEdits;
dsEdits = (DataSet)Session["Dataset"];
DataView dvEditsQuestion = dsEdits.Tables["Question"].DefaultView;
dvEditsQuestion.RowFilter = "Question_Id=" + Question_id;
dvEditsQuestion.AllowEdit = true;
dvEditsQuestion[0].BeginEdit();
dvEditsQuestion[0]["QName"] = txtQuestionName.Text;
dvEditsQuestion[0]["Text"] = txtQuestion.Text;
dvEditsQuestion[0]["QType"] = txtQuestionType.Text;
dvEditsQuestion[0].EndEdit();
DataView dvEditsOpt = dsEdits.Tables["Opt"].DefaultView;
dvEditsOpt.RowFilter = "Optionlist_Id=" + Question_id;
dvEditsOpt.AllowEdit = true;
dvEditsOpt[0]["O1"] = txtOption1.Text;
dvEditsOpt[0]["O2"] = txtOption2.Text;
dvEditsOpt[0]["O3"] = txtOption3.Text;
dvEditsOpt[0]["O4"] = txtOption4.Text;
dvEditsOpt[0]["O5"] = txtOption5.Text;
dvEditsOpt[0].EndEdit();
dsEdits.AcceptChanges();
Session["Dataset"] = dsEdits;
dsEdits.WriteXml(Server.MapPath("Test.xml"));
Response.Redirect("XMLDemo.aspx");
}
}
#endregion
#region -Add New Record-
public void InsertNewRecord()
{
if (Session["Dataset"] != null)
{
DataSet dsAdd;
dsAdd = (DataSet)Session["Dataset"];
DataTable dtAddQuestion = new DataTable();
dtAddQuestion = dsAdd.Tables["Question"];
DataRow drAddQuestion = dtAddQuestion.NewRow();
drAddQuestion["QName"] = txtQuestionName.Text;
drAddQuestion["Text"] = txtQuestion.Text;
drAddQuestion["QType"] = txtQuestionType.Text;
dtAddQuestion.Rows.Add(drAddQuestion);
int Question_Id = Convert.ToInt32(dsAdd.Tables["Question"].Compute("MAX(Question_Id)", ""));
DataTable dtAddOptionlist = new DataTable();
dtAddOptionlist = dsAdd.Tables["Optionlist"];
DataRow drAddOptionlist = dtAddOptionlist.NewRow();
drAddOptionlist["Optionlist_Id"] = Question_Id;
drAddOptionlist["Question_Id"] = Question_Id;
dtAddOptionlist.Rows.Add(drAddOptionlist);
DataTable dtAddOpt = new DataTable();
dtAddOpt = dsAdd.Tables["Opt"];
DataRow drAddOpt = dtAddOpt.NewRow();
drAddOpt["O1"] = txtOption1.Text;
drAddOpt["O2"] = txtOption2.Text;
drAddOpt["O3"] = txtOption3.Text;
drAddOpt["O4"] = txtOption4.Text;
drAddOpt["O5"] = txtOption5.Text;
drAddOpt["Optionlist_Id"] = Question_Id;
dtAddOpt.Rows.Add(drAddOpt);
dsAdd.AcceptChanges();
dsAdd.WriteXml(Server.MapPath("Test.xml"));
Session["Dataset"] = dsAdd;
Response.Redirect("XmlDemo.aspx");
}
}
#endregion
protected void grdXMLDemo_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument.ToString());
int Question_Id = Convert.ToInt32(grdXMLDemo.DataKeys[index].Value);
#region -Delete-
if (e.CommandName.Equals("Deletes"))
{
if (Session["Dataset"] != null)
{
DataSet dsDelete;
dsDelete = (DataSet)Session["Dataset"];
DataView dvDelete = new DataView();
dvDelete = dsDelete.Tables["Question"].DefaultView;
dvDelete.RowFilter = "Question_Id=" + Question_Id;
dvDelete.AllowDelete = true;
dvDelete[0].Delete();
dsDelete.AcceptChanges();
Session["Dataset"] = dsDelete;
dsDelete.WriteXml(Server.MapPath("Test.xml"));
Response.Redirect("XMLDemo.aspx");
}
}
#endregion
#region -Edit-
if (e.CommandName.Equals("Edits"))
{
if (Session["Dataset"] != null)
{
DataSet dsEdit;
dsEdit = (DataSet)Session["Dataset"];
DataView dvEditQuestion = new DataView();
dvEditQuestion = dsEdit.Tables["Question"].DefaultView;
dvEditQuestion.RowFilter = "Question_Id=" + Question_Id;
txtQuestionName.Text = dvEditQuestion[0].Row["QName"].ToString();
txtQuestion.Text = dvEditQuestion[0].Row["Text"].ToString();
txtQuestionType.Text = dvEditQuestion[0].Row["QType"].ToString();
DataView dvEditOpt=new DataView();
dvEditOpt = dsEdit.Tables["Opt"].DefaultView;
dvEditOpt.RowFilter = "Optionlist_Id=" + Question_Id;
txtOption1.Text = dvEditOpt[0].Row["O1"].ToString();
txtOption2.Text = dvEditOpt[0].Row["O2"].ToString();
txtOption3.Text = dvEditOpt[0].Row["O3"].ToString();
txtOption4.Text = dvEditOpt[0].Row["O4"].ToString();
txtOption5.Text = dvEditOpt[0].Row["O5"].ToString();
Session["Question_Id"] = Question_Id;
txtQuestionName.Enabled = false;
lblStatus.Text = "2";
}
}
#endregion
}
protected void grdXMLDemo_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[2].Visible = false;
}
protected void btnCancel_Click(object sender, EventArgs e)
{
#region -Cancel-
txtQuestionName.Text = string.Empty;
txtQuestion.Text = string.Empty;
txtQuestionType.Text = string.Empty;
txtOption1.Text = string.Empty;
txtOption2.Text = string.Empty;
txtOption3.Text = string.Empty;
txtOption4.Text = string.Empty;
txtOption5.Text = string.Empty;
lblStatus.Text = "1";
txtQuestionName.Enabled = true;
#endregion
}
}
}
Step 2: Make Test.xml like as follows
Step 3: on code behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Xml;
namespace XmlDemo
{
public partial class XmlDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region -OnLoad-
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("Test.xml"));
Session["Dataset"] = ds;
grdXMLDemo.DataSource = ds;
grdXMLDemo.DataBind();
#endregion
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
int status=Convert.ToInt32(lblStatus.Text);
if (status==1)
{
InsertNewRecord();
}
else
{
UpdateRecords();
}
}
#region -Update Record-
public void UpdateRecords()
{
if (Session["Question_Id"] != null)
{
int Question_id = Convert.ToInt32(Session["Question_Id"]);
DataSet dsEdits;
dsEdits = (DataSet)Session["Dataset"];
DataView dvEditsQuestion = dsEdits.Tables["Question"].DefaultView;
dvEditsQuestion.RowFilter = "Question_Id=" + Question_id;
dvEditsQuestion.AllowEdit = true;
dvEditsQuestion[0].BeginEdit();
dvEditsQuestion[0]["QName"] = txtQuestionName.Text;
dvEditsQuestion[0]["Text"] = txtQuestion.Text;
dvEditsQuestion[0]["QType"] = txtQuestionType.Text;
dvEditsQuestion[0].EndEdit();
DataView dvEditsOpt = dsEdits.Tables["Opt"].DefaultView;
dvEditsOpt.RowFilter = "Optionlist_Id=" + Question_id;
dvEditsOpt.AllowEdit = true;
dvEditsOpt[0]["O1"] = txtOption1.Text;
dvEditsOpt[0]["O2"] = txtOption2.Text;
dvEditsOpt[0]["O3"] = txtOption3.Text;
dvEditsOpt[0]["O4"] = txtOption4.Text;
dvEditsOpt[0]["O5"] = txtOption5.Text;
dvEditsOpt[0].EndEdit();
dsEdits.AcceptChanges();
Session["Dataset"] = dsEdits;
dsEdits.WriteXml(Server.MapPath("Test.xml"));
Response.Redirect("XMLDemo.aspx");
}
}
#endregion
#region -Add New Record-
public void InsertNewRecord()
{
if (Session["Dataset"] != null)
{
DataSet dsAdd;
dsAdd = (DataSet)Session["Dataset"];
DataTable dtAddQuestion = new DataTable();
dtAddQuestion = dsAdd.Tables["Question"];
DataRow drAddQuestion = dtAddQuestion.NewRow();
drAddQuestion["QName"] = txtQuestionName.Text;
drAddQuestion["Text"] = txtQuestion.Text;
drAddQuestion["QType"] = txtQuestionType.Text;
dtAddQuestion.Rows.Add(drAddQuestion);
int Question_Id = Convert.ToInt32(dsAdd.Tables["Question"].Compute("MAX(Question_Id)", ""));
DataTable dtAddOptionlist = new DataTable();
dtAddOptionlist = dsAdd.Tables["Optionlist"];
DataRow drAddOptionlist = dtAddOptionlist.NewRow();
drAddOptionlist["Optionlist_Id"] = Question_Id;
drAddOptionlist["Question_Id"] = Question_Id;
dtAddOptionlist.Rows.Add(drAddOptionlist);
DataTable dtAddOpt = new DataTable();
dtAddOpt = dsAdd.Tables["Opt"];
DataRow drAddOpt = dtAddOpt.NewRow();
drAddOpt["O1"] = txtOption1.Text;
drAddOpt["O2"] = txtOption2.Text;
drAddOpt["O3"] = txtOption3.Text;
drAddOpt["O4"] = txtOption4.Text;
drAddOpt["O5"] = txtOption5.Text;
drAddOpt["Optionlist_Id"] = Question_Id;
dtAddOpt.Rows.Add(drAddOpt);
dsAdd.AcceptChanges();
dsAdd.WriteXml(Server.MapPath("Test.xml"));
Session["Dataset"] = dsAdd;
Response.Redirect("XmlDemo.aspx");
}
}
#endregion
protected void grdXMLDemo_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = Convert.ToInt32(e.CommandArgument.ToString());
int Question_Id = Convert.ToInt32(grdXMLDemo.DataKeys[index].Value);
#region -Delete-
if (e.CommandName.Equals("Deletes"))
{
if (Session["Dataset"] != null)
{
DataSet dsDelete;
dsDelete = (DataSet)Session["Dataset"];
DataView dvDelete = new DataView();
dvDelete = dsDelete.Tables["Question"].DefaultView;
dvDelete.RowFilter = "Question_Id=" + Question_Id;
dvDelete.AllowDelete = true;
dvDelete[0].Delete();
dsDelete.AcceptChanges();
Session["Dataset"] = dsDelete;
dsDelete.WriteXml(Server.MapPath("Test.xml"));
Response.Redirect("XMLDemo.aspx");
}
}
#endregion
#region -Edit-
if (e.CommandName.Equals("Edits"))
{
if (Session["Dataset"] != null)
{
DataSet dsEdit;
dsEdit = (DataSet)Session["Dataset"];
DataView dvEditQuestion = new DataView();
dvEditQuestion = dsEdit.Tables["Question"].DefaultView;
dvEditQuestion.RowFilter = "Question_Id=" + Question_Id;
txtQuestionName.Text = dvEditQuestion[0].Row["QName"].ToString();
txtQuestion.Text = dvEditQuestion[0].Row["Text"].ToString();
txtQuestionType.Text = dvEditQuestion[0].Row["QType"].ToString();
DataView dvEditOpt=new DataView();
dvEditOpt = dsEdit.Tables["Opt"].DefaultView;
dvEditOpt.RowFilter = "Optionlist_Id=" + Question_Id;
txtOption1.Text = dvEditOpt[0].Row["O1"].ToString();
txtOption2.Text = dvEditOpt[0].Row["O2"].ToString();
txtOption3.Text = dvEditOpt[0].Row["O3"].ToString();
txtOption4.Text = dvEditOpt[0].Row["O4"].ToString();
txtOption5.Text = dvEditOpt[0].Row["O5"].ToString();
Session["Question_Id"] = Question_Id;
txtQuestionName.Enabled = false;
lblStatus.Text = "2";
}
}
#endregion
}
protected void grdXMLDemo_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[2].Visible = false;
}
protected void btnCancel_Click(object sender, EventArgs e)
{
#region -Cancel-
txtQuestionName.Text = string.Empty;
txtQuestion.Text = string.Empty;
txtQuestionType.Text = string.Empty;
txtOption1.Text = string.Empty;
txtOption2.Text = string.Empty;
txtOption3.Text = string.Empty;
txtOption4.Text = string.Empty;
txtOption5.Text = string.Empty;
lblStatus.Text = "1";
txtQuestionName.Enabled = true;
#endregion
}
}
}
No comments:
Post a Comment