| public partial class Questions : System.Web.UI.Page |
| { |
| |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| if (Session["UserName"] != null) |
| { |
| if (!Page.IsPostBack) |
| { |
| userNameLabel.Text = Session["UserName"].ToString(); |
| |
| questionsRadGrid.AutoGenerateColumns = false; |
| |
| questionsRadGrid.MasterTableView.DataKeyNames = new string[] { "Id", "TagName" }; |
| |
| |
| GridBoundColumn subjectColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(subjectColumn); |
| subjectColumn.DataField = "Subject"; |
| subjectColumn.HeaderText = "Subject"; |
| subjectColumn.UniqueName = "Subject"; |
| |
| GridBoundColumn descriptionColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(descriptionColumn); |
| descriptionColumn.DataField = "Description"; |
| descriptionColumn.HeaderText = "Description"; |
| descriptionColumn.UniqueName = "Description"; |
| |
| GridBoundColumn createDateTimeColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(createDateTimeColumn); |
| createDateTimeColumn.DataField = "CreateDateTime"; |
| createDateTimeColumn.HeaderText = "Created Date Time"; |
| createDateTimeColumn.UniqueName = "CreateDateTime"; |
| |
| GridBoundColumn userNameColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(userNameColumn); |
| userNameColumn.DataField = "UserName"; |
| userNameColumn.HeaderText = "User Name"; |
| userNameColumn.UniqueName = "UserName"; |
| |
| |
| GridBoundColumn tagNameColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(tagNameColumn); |
| tagNameColumn.DataField = "TagName"; |
| tagNameColumn.HeaderText = "Tag Name"; |
| tagNameColumn.UniqueName = "TagName"; |
| |
| |
| GridBoundColumn idColumn = new GridBoundColumn(); |
| questionsRadGrid.MasterTableView.Columns.Add(idColumn); |
| idColumn.DataField = "Id"; |
| idColumn.HeaderText = "Id"; |
| idColumn.UniqueName = "Id"; |
| |
| //Create the detail table |
| GridTableView gridTableView = new GridTableView(questionsRadGrid); |
| |
| questionsRadGrid.MasterTableView.DetailTables.Add(gridTableView); |
| |
| GridRelationFields gridRelationFields = new GridRelationFields(); |
| gridTableView.ParentTableRelation.Add(gridRelationFields); |
| gridRelationFields.MasterKeyField = "Id"; |
| |
| |
| gridTableView.AutoGenerateColumns = false; |
| |
| GridBoundColumn answerColumn = new GridBoundColumn(); |
| gridTableView.Columns.Add(answerColumn); |
| answerColumn.DataField = "Description"; |
| answerColumn.HeaderText = "Answer"; |
| answerColumn.UniqueName = "Answer"; |
| |
| GridBoundColumn createdDateTimeColumn = new GridBoundColumn(); |
| gridTableView.Columns.Add(createdDateTimeColumn); |
| createdDateTimeColumn.DataField = "CreatedDateTime"; |
| createdDateTimeColumn.HeaderText = "Created DateTime"; |
| createdDateTimeColumn.UniqueName = "CreatedDateTime"; |
| |
| GridBoundColumn userNameColumn1 = new GridBoundColumn(); |
| gridTableView.Columns.Add(userNameColumn1); |
| userNameColumn1.DataField = "UserName"; |
| userNameColumn1.HeaderText = "User Name"; |
| userNameColumn1.UniqueName = "UserName"; |
| |
| |
| GridBoundColumn questionIdColumn = new GridBoundColumn(); |
| gridTableView.Columns.Add(questionIdColumn); |
| questionIdColumn.DataField = "QuestionId"; |
| questionIdColumn.HeaderText = "Question Id"; |
| questionIdColumn.UniqueName = "QuestionId"; |
| |
| GridBoundColumn tagColumn = new GridBoundColumn(); |
| gridTableView.Columns.Add(tagColumn); |
| tagColumn.DataField = "TagName"; |
| tagColumn.HeaderText = "Tag Name"; |
| tagColumn.UniqueName = "TagName"; |
| |
| |
| } |
| |
| } |
| else |
| { |
| Response.Redirect("Login.aspx"); |
| } |
| } |
| |
| protected void exportButton_Click(object sender, EventArgs e) |
| { |
| questionsRadGrid.ExportSettings.OpenInNewWindow = true; |
| questionsRadGrid.ExportSettings.FileName = "Export"; |
| questionsRadGrid.MasterTableView.ExportToExcel(); |
| } |
| |
| protected void questionsRadGrid_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) |
| { |
| if (!e.IsFromDetailTable) |
| { |
| HttpClient client = new HttpClient(); |
| HttpResponseMessage response = client.Get(new Uri("http://localhost/QuestionService/Service.svc/")); |
| response.Content.LoadIntoBuffer(); |
| |
| QuestionCollection questionCollection = response.Content.ReadAsXmlSerializable<QuestionCollection>(); |
| questionsRadGrid.DataSource = questionCollection; |
| |
| } |
| } |
| |
| |
| protected void questionsRadGrid_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) |
| { |
| GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem; |
| |
| string questionId = dataItem.GetDataKeyValue("Id").ToString(); |
| string tagName = dataItem.GetDataKeyValue("TagName").ToString(); |
| |
| HttpClient client1 = new HttpClient(); |
| HttpResponseMessage response1 = client1.Get(new Uri("http://localhost/AnswerService/Service.svc/" + questionId)); |
| response1.Content.LoadIntoBuffer(); |
| |
| AnswerCollection answerCollection = response1.Content.ReadAsXmlSerializable<AnswerCollection>(); |
| |
| foreach (Answer answer in answerCollection) |
| { |
| answer.TagName = tagName; |
| answer.QuestionId = questionId; |
| } |
| |
| |
| e.DetailTableView.DataSource = answerCollection; |
| |
| |
| } |
| |
| |
| } |