<ClientSettings AllowRowsDragDrop="true">
<Selecting AllowRowSelect="True" EnableDragToSelectRows="False"/>
</ClientSettings>
...and then dragging a row and dropping, I receive the following error:
Unable to cast object of type 'ASP.appforms_aj_master' to type 'Telerik.Web.UI.GridTableView'.
Is there something I have missed in regards to a Master page?
Thanks
3 Answers, 1 is accepted
I am afraid that the provided information is not enough to determine the exact cause for the issue you are facing. It seems that somewhere in your logic there is an attempt to cast the page itself to Telerik.Web.UI.GridTableView.
Can you check whether moving the grid on another page alleviates the abnormality? If this does not help, I will appreciate if you prepare a small working version of your project and send it attached to a standard support ticket. I will test it locally and will get around to you with my findings.
Kind regards,
Pavlina
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
<%
@ Page Language="C#" MasterPageFile="~/AppForms/AJ.Master" AutoEventWireup="true"
Codebehind="Questionnaires.aspx.cs" Inherits="SuperJockey.Questionnaires" Title="Questionnaire Maintenance" %>
<%
@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%
@ Register Src="~/AppControls/_CheckBox.ascx" TagName="AJCheckBox" TagPrefix="AJCheckBox" %>
<%
@ Register Src="~/AppControls/_QuestionnaireDisplay.ascx" TagName="QPreview" TagPrefix="QPreview" %>
<%
@ MasterType VirtualPath="~/AppForms/AJ.Master" %>
<
asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<table width="100%">
<tr>
<td>
<asp:Label ID="lblStatus" runat="server" Visible="false"></asp:Label>
</td>
</tr>
<tr>
<td>
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="grdQuestionnaire">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="grdQuestionnaire" />
<telerik:AjaxUpdatedControl ControlID="grdQuestions" />
<telerik:AjaxUpdatedControl ControlID="grdAnswers" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
</td>
</tr>
<tr>
<td valign="top">
<telerik:RadTabStrip ID="stripQuestionnaire" runat="server" Skin="Outlook" MultiPageID="QuestionnairePage"
SelectedIndex="0">
<Tabs>
<telerik:RadTab Text="Questionnaire" Value="QuestionnaireTab">
</telerik:RadTab>
<telerik:RadTab Text="Questions" Value="QuestionTab" Visible="false">
</telerik:RadTab>
<telerik:RadTab Text="Answers" Value="AnswerTab" Visible="false">
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="QuestionnairePage" runat="server" SelectedIndex="0">
<telerik:RadPageView ID="QuestionnaireView" runat="server" Width="550px" BorderWidth="1px"
BorderColor="#CCCCCC" Height="525" BackColor="#FFFDEA">
<table style="width: 100%;">
<tr>
<td rowspan="2">
<telerik:RadGrid ID="grdQuestionnaire" runat="server" Skin="Office2007" AllowSorting="true"
AutoGenerateColumns="False" AllowPaging="true" PageSize="25" Visible="true" AlternatingItemStyle-BackColor="Bisque"
OnNeedDataSource="grdQuestionnaire_NeedDataSource" OnItemDataBound="grdQuestionnaire_onitemdatabound"
OnInsertCommand="grdQuestionnaire_Insert" OnItemCommand="grdQuestionnaire_Edit">
<PagerStyle Mode="NextPrevAndNumeric" />
<MasterTableView AutoGenerateColumns="false" CommandItemDisplay="top" CommandItemSettings-AddNewRecordText="Add New Questionnaire">
<Columns>
<telerik:GridBoundColumn DataField="questionnaireId" SortExpression="questionnaireId"
HeaderText="Id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="CreatedDate" SortExpression="createddate" HeaderText="Created"
DataFormatString="{0:MM/dd/yy}">
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn HeaderText="Type" DataField="QuestionnaireTypeId" DataSourceID="SqlsQuestionnaireType"
ListTextField="QuestionnaireType" ListValueField="QuestionnaireTypeId" UniqueName="questionnaireTypeId">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn DataField="Description" SortExpression="Description" HeaderText="Description">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="isActive" SortExpression="isActive" HeaderText="Active">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Empno" SortExpression="Empno" HeaderText="Created By">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn ButtonType="LinkButton" CommandName="EditQuestions" CommandArgument='<% DataBinder.Eval(Container.DataItem, "questionnaireId").ToString() %>'
Text="Questions" ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
<telerik:GridButtonColumn ButtonType="LinkButton" CommandName="Preview" CommandArgument='<% DataBinder.Eval(Container.DataItem, "questionnaireId").ToString() %>'
Text="View" ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
<telerik:GridButtonColumn HeaderText="" ButtonType="LinkButton" Text="Edit" CommandName="Edit"
ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings EditFormType="Template" PopUpSettings-Width="500px">
<FormTemplate>
<table id="table1" cellspacing="0" cellpadding="1">
<tr>
<td>
Id:
</td>
<td>
<asp:TextBox ID="txtQuestionnaireId" runat="server" Width="50px" Text='<%# Bind("questionnaireId") %>'
ReadOnly="true" BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Description:
</td>
<td>
<asp:TextBox ID="txtDescription" runat="server" MaxLength="80" BorderColor="#9FB6CD"
Width="400px" Text='<%# Bind("Description") %>'></asp:TextBox> <asp:RequiredFieldValidator
ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtDescription"
ErrorMessage="* required"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
Type:
</td>
<td>
<asp:DropDownList ID="ddnQuestionnaireType" runat="server" DataTextField="QuestionnaireType"
DataValueField="QuestionnaireTypeId" DataSourceID="SqlsQuestionnaireType">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
</td>
<td>
<AJCheckBox:AJCheckBox Text="Active?" ID="chkIsActive" runat="server" Checked='<%# Bind("isActive") %>' />
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandArgument='<%# (Container is GridEditFormInsertItem) ? "0" : "test" %>'
CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
</asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
CommandName="Cancel"></asp:Button></td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
<asp:SqlDataSource ID="SqlsQuestionnaireType" runat="server" ConnectionString="<%$ ConnectionStrings:Default %>"
ProviderName="System.Data.SqlClient" SelectCommandType="StoredProcedure" SelectCommand="sQuestionnaireType_S">
</asp:SqlDataSource>
</td>
</tr>
</table>
</telerik:RadPageView>
<telerik:RadPageView ID="QuestionView" runat="server" Width="550px" BorderWidth="1px"
BorderColor="#CCCCCC" Height="525" BackColor="#FFFDEA">
<table width="100%">
<tr>
<td>
<asp:LinkButton ID="btnReturnToQuestionnaire" runat="server" Text="<--Return to Questionnaire"
OnClick="btnReturnToQuestionnaires_onclick"></asp:LinkButton><br />
<br />
Questionnaire:
<asp:Label ID="lblQuestionnaire" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<telerik:RadGrid ID="grdQuestions" runat="server" Skin="Office2007" AllowSorting="true"
AutoGenerateColumns="False" AllowPaging="true" PageSize="25" Visible="true" AlternatingItemStyle-BackColor="Bisque"
OnNeedDataSource="grdQuestions_NeedDataSource" OnItemDataBound="grdQuestions_onitemdatabound"
OnInsertCommand="grdQuestions_Insert" OnItemCommand="grdQuestions_Edit">
<PagerStyle Mode="NextPrevAndNumeric" />
<MasterTableView AutoGenerateColumns="false" CommandItemDisplay="top" CommandItemSettings-AddNewRecordText="Add New Question">
<Columns>
<telerik:GridBoundColumn DataField="questionId" SortExpression="questionId" HeaderText="Id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="SequenceNo" SortExpression="sequenceno" HeaderText="Sequence"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Question" SortExpression="question" HeaderText="Question">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Description" SortExpression="description" HeaderText="Description">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn ButtonType="LinkButton" CommandName="EditAnswers" CommandArgument='<% DataBinder.Eval(Container.DataItem, "questionId").ToString() %>'
Text="Answers" ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
<telerik:GridButtonColumn HeaderText="" ButtonType="LinkButton" Text="Edit" CommandName="Edit"
ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
<telerik:GridButtonColumn HeaderText="" ButtonType="LinkButton" Text="Delete" CommandName="Delete"
ConfirmText="Are you sure you want to delete this record?" ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings EditFormType="Template" PopUpSettings-Width="500px">
<FormTemplate>
<table id="table1" cellspacing="0" cellpadding="1">
<tr>
<td>
Id:
</td>
<td>
<asp:TextBox ID="txtQuestionId" runat="server" Width="50px" Text='<%# Bind("questionId") %>'
ReadOnly="true" BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Sequence:
</td>
<td>
<asp:TextBox ID="txtSequenceNo" runat="server" Width="50px" Text='<%# Bind("sequenceNo") %>'
ReadOnly="true" BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td valign="top">
Question:
</td>
<td>
<asp:TextBox ID="txtQuestion" runat="server" Width="400px" MaxLength="8000" TextMode="MultiLine"
Height="40px" Text='<%# Bind("question") %>' BorderColor="#9FB6CD"></asp:TextBox> <asp:RequiredFieldValidator
ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtQuestion" ErrorMessage="* required"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td valign="top">
Description:
</td>
<td>
<asp:TextBox ID="txtDescription" runat="server" Width="400px" TextMode="multiLine"
Height="40px" Text='<%# Bind("description") %>' BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandArgument='<%# (Container is GridEditFormInsertItem) ? "0" : "test" %>'
CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
</asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
CommandName="Cancel"></asp:Button></td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
<ClientSettings AllowRowsDragDrop="true">
<Selecting AllowRowSelect="True" EnableDragToSelectRows="False" />
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
</table>
</telerik:RadPageView>
<telerik:RadPageView ID="AnswerView" runat="server" Width="550px" BorderWidth="1px"
BorderColor="#CCCCCC" Height="525" BackColor="#FFFDEA">
<table width="100%">
<tr>
<td>
<asp:LinkButton ID="btnReturnToQuestion" runat="server" Text="<--Return to Question"
OnClick="btnReturnToQuestions_onclick"></asp:LinkButton><br />
<br />
Question:
<asp:Label ID="lblQuestion" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td>
<telerik:RadGrid ID="grdAnswers" runat="server" Skin="Office2007" AllowSorting="true"
AutoGenerateColumns="False" AllowPaging="true" PageSize="25" Visible="true" AlternatingItemStyle-BackColor="Bisque"
OnNeedDataSource="grdAnswers_NeedDataSource" OnItemDataBound="grdAnswers_onitemdatabound"
OnInsertCommand="grdAnswers_Insert" OnItemCommand="grdAnswers_Edit">
<PagerStyle Mode="NextPrevAndNumeric" />
<MasterTableView AutoGenerateColumns="false" CommandItemDisplay="top" CommandItemSettings-AddNewRecordText="Add New Answer">
<Columns>
<telerik:GridBoundColumn DataField="answerId" SortExpression="answerId" HeaderText="Id">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="sequenceno" SortExpression="sequenceno" HeaderText="Sequence" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Answer" SortExpression="answer" HeaderText="Answer">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn HeaderText="" ButtonType="LinkButton" Text="Edit" CommandName="Edit"
ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
<telerik:GridButtonColumn HeaderText="" ButtonType="LinkButton" Text="Delete" CommandName="Delete"
ConfirmText="Are you sure you want to delete this record?" ItemStyle-ForeColor="#004080">
</telerik:GridButtonColumn>
</Columns>
<EditFormSettings EditFormType="Template" PopUpSettings-Width="500px">
<FormTemplate>
<table id="table1" cellspacing="0" cellpadding="1">
<tr>
<td>
Id:
</td>
<td>
<asp:TextBox ID="txtAnswerId" runat="server" Width="50px" Text='<%# Bind("answerId") %>'
ReadOnly="true" BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Sequence:
</td>
<td>
<asp:TextBox ID="txtSequenceNo" runat="server" Width="50px" Text='<%# Bind("sequenceNo") %>'
ReadOnly="true" BorderColor="#9FB6CD"></asp:TextBox>
</td>
</tr>
<tr>
<td valign="top">
Answer:
</td>
<td>
<asp:TextBox ID="txtAnswer" runat="server" Width="460px" MaxLength="100" Text='<%# Bind("answer") %>'
BorderColor="#9FB6CD"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
runat="server" ControlToValidate="txtAnswer" ErrorMessage="* required"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandArgument='<%# (Container is GridEditFormInsertItem) ? "0" : "test" %>'
CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
</asp:Button>
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
CommandName="Cancel"></asp:Button></td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
<ClientSettings AllowRowsDragDrop="true">
<Selecting AllowRowSelect="True" EnableDragToSelectRows="False" />
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
</table>
</telerik:RadPageView>
</telerik:RadMultiPage>
</td>
<td>
</td>
<td valign="top">
<telerik:RadTabStrip ID="stripPreview" runat="server" Skin="Outlook" MultiPageID="PreviewPage"
SelectedIndex="0">
<Tabs>
<telerik:RadTab Text="Preview" Value="PreviewTab" Selected="false">
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="PreviewPage" runat="server" SelectedIndex="0">
<telerik:RadPageView ID="PreviewView" runat="server" Width="475px" BorderWidth="1px"
BorderColor="#CCCCCC" Height="525" BackColor="#EBEBEB">
<table>
<tr>
<td><QPreview:QPreview ID="questionnairePreview" runat="server" />
</td>
</tr>
</table>
</telerik:RadPageView>
</telerik:RadMultiPage>
</td>
</tr>
<tr>
<td>
<asp:HiddenField ID="hidQuestionnaireId" runat="server" />
<asp:HiddenField ID="hidQuestionId" runat="server" />
</td>
</tr>
</table>
</
asp:Content>
Code Behind:
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
Jockey.Auto.Entity;
using
System.Collections.Generic;
using
Telerik.Web.UI;
using
Jockey.Utility;
namespace
SuperJockey
{
public partial class Questionnaires : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Master.setContentLabel =
"Questionnaire";
Master.setSecureProtocol(
false);
}
((
RadTabStrip)stripPreview).Tabs.FindTabByValue("PreviewTab").Selected = false;
}
#region
Questionnaire
protected void grdQuestionnaire_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
GetQuestionnaireData(
false);
}
protected void GetQuestionnaireData(bool databind)
{
Jockey.Data.DALSelectTableAdapters.
QuestionnaireTableAdapter qta = new Jockey.Data.DALSelectTableAdapters.QuestionnaireTableAdapter();
Jockey.Data.
DALSelect.QuestionnaireDataTable qlist = qta.Questionnaire_S_dealerId(Decimal.Parse(Session["MyDealer"].ToString()));
grdQuestionnaire.DataSource = qlist;
if (databind)
{
grdQuestionnaire.DataBind();
}
}
protected void grdQuestionnaire_onitemdatabound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode)
{
//default the QuestionnaireId to zero
GridEditFormInsertItem grd = e.Item as GridEditFormInsertItem;
((
TextBox)grd.FindControl("txtQuestionnaireId")).Text = "0";
//set the dropdown to the manual type
((
DropDownList)grd.FindControl("ddnQuestionnaireType")).SelectedValue = "1";
}
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
//string tabb = DataBinder.Eval(e.Item.DataItem,"QuestionnaireTypeId").ToString();
GridEditFormItem grd = e.Item as GridEditFormItem;
((
DropDownList)grd.FindControl("ddnQuestionnaireType")).SelectedValue = DataBinder.Eval(e.Item.DataItem, "QuestionnaireTypeId").ToString();
}
}
protected void grdQuestionnaire_Edit(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
//Edit
if (e.CommandName == "Update")
{
try
{
grdQuestionnaire_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
//Edit Questions
if (e.CommandName == "EditQuestions")
{
try
{
//set the id of the questionnaire and edit the questions
hidQuestionnaireId.Value = (e.Item
as GridDataItem)["questionnaireId"].Text;
lblQuestionnaire.Text = (e.Item
as GridDataItem)["description"].Text;
toggleQuestionnaireTab(
false, false, false);
toggleAnswerTab(
false, false, false);
toggleQuestionTab(
true, true, true);
//Get the questions
GetQuestionsData(
true);
}
catch (Exception ex)
{
}
}
//Preview the questionnaire
if (e.CommandName == "Preview")
{
try
{
//set the id of the questionnaire and preview
hidQuestionnaireId.Value = (e.Item
as GridDataItem)["questionnaireId"].Text;
}
catch (Exception ex)
{
}
}
}
protected void grdQuestionnaire_Insert(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
try
{
grdQuestionnaire_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
protected void grdQuestionnaire_Update(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
decimal uDealershipId = Decimal.Parse(Session["MyDealer"].ToString());
decimal uCreatedByEmpId = Decimal.Parse(Session["MyUserID"].ToString());
GridEditableItem item = e.Item as GridEditableItem;
string uDescription = ((TextBox)item.FindControl("txtDescription")).Text;
decimal uQuestionnaireId = decimal.Parse(((TextBox)item.FindControl("txtQuestionnaireId")).Text);
Int32 uQuestionnaireTypeId = Int32.Parse(((DropDownList)item.FindControl("ddnQuestionnaireType")).SelectedValue);
bool uIsActive = Boolean.Parse(((SuperJockey._CheckBox)item.FindControl("chkIsActive")).Checked.ToString());
if (!string.IsNullOrEmpty(uDescription))
{
Jockey.Data.DALUpdateTableAdapters.
QuestionnaireTableAdapter ta = new Jockey.Data.DALUpdateTableAdapters.QuestionnaireTableAdapter();
Jockey.Data.
DALUpdate.QuestionnaireDataTable dt = ta.Questionnaire_U(uQuestionnaireId,
uDealershipId,
uQuestionnaireTypeId,
uDescription,
uIsActive,
uCreatedByEmpId);
if (Int32.Parse(dt.Rows[0]["retval"].ToString()) < 0) //failed to update
{
throw new Exception(dt.Rows[0]["ErrorMessage"].ToString());
}
}
}
#endregion
#region
Questions
protected void grdQuestions_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
GetQuestionsData(
false);
}
protected void GetQuestionsData(bool databind)
{
decimal questionnaireId = 0;
decimal.TryParse(hidQuestionnaireId.Value, out questionnaireId);
Jockey.Data.DALSelectTableAdapters.
QuestionnaireQuestionTableAdapter qta = new Jockey.Data.DALSelectTableAdapters.QuestionnaireQuestionTableAdapter();
Jockey.Data.
DALSelect.QuestionnaireQuestionDataTable qlist = qta.QuestionnaireQuestion_S_questionnaireId(questionnaireId);
grdQuestions.DataSource = qlist;
if (databind)
{
grdQuestions.DataBind();
}
}
protected void grdQuestions_onitemdatabound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode)
{
//default the QuestionId to zero
GridEditFormInsertItem grd = e.Item as GridEditFormInsertItem;
((
TextBox)grd.FindControl("txtQuestionId")).Text = "0";
((
TextBox)grd.FindControl("txtSequenceNo")).Text = "0";
}
}
protected void grdQuestions_Edit(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
//Edit
if (e.CommandName == "Delete")
{
try
{
Jockey.Data.DALDeleteTableAdapters.
QuestionnaireQuestionTableAdapter dta = new Jockey.Data.DALDeleteTableAdapters.QuestionnaireQuestionTableAdapter();
Jockey.Data.
DALDelete.QuestionnaireQuestionDataTable qdt = dta.QuestionnaireQuestion_D(Decimal.Parse((e.Item as GridDataItem)["questionId"].Text));
}
catch (Exception ex)
{
statusLabel(
false, "Failed to delete record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
if (e.CommandName == "Update")
{
try
{
grdQuestions_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
//SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
//Edit Answers
if (e.CommandName == "EditAnswers")
{
try
{
//set the id of the questionnaire and edit the questions
hidQuestionId.Value = (e.Item
as GridDataItem)["questionId"].Text;
lblQuestion.Text = (e.Item
as GridDataItem)["question"].Text;
toggleQuestionnaireTab(
false, false, false);
toggleQuestionTab(
false, false, false);
toggleAnswerTab(
true, true, true);
GetAnswersData(
true);
}
catch (Exception ex)
{
}
}
}
protected void grdQuestions_Insert(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
try
{
grdQuestions_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
//SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
protected void grdQuestions_Update(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
decimal uQuestionnaireId = Decimal.Parse(hidQuestionnaireId.Value);
GridEditableItem item = e.Item as GridEditableItem;
decimal uQuestionId = decimal.Parse(((TextBox)item.FindControl("txtQuestionId")).Text);
Int32 uSequenceNo = Int32.Parse(((TextBox)item.FindControl("txtSequenceNo")).Text);
string uQuestion = ((TextBox)item.FindControl("txtQuestion")).Text;
string uDescription = ((TextBox)item.FindControl("txtDescription")).Text;
if (!string.IsNullOrEmpty(uQuestion))
{
Jockey.Data.DALUpdateTableAdapters.
QuestionnaireQuestionTableAdapter ta = new Jockey.Data.DALUpdateTableAdapters.QuestionnaireQuestionTableAdapter();
Jockey.Data.
DALUpdate.QuestionnaireQuestionDataTable dt = ta.QuestionnaireQuestion_U(uQuestionId,
uQuestionnaireId,
uSequenceNo,
uQuestion,
uDescription);
if (Int32.Parse(dt.Rows[0]["retval"].ToString()) < 0) //failed to update
{
throw new Exception(dt.Rows[0]["ErrorMessage"].ToString());
}
}
}
protected void grdQuestions_RowDrop(object sender, GridDragDropEventArgs e)
{
string tabb = "tabb";
}
protected void btnReturnToQuestionnaires_onclick(object sender, EventArgs e)
{
toggleQuestionTab(
false, false, false);
toggleAnswerTab(
false, false, false);
toggleQuestionnaireTab(
true, true, true);
}
#endregion
#region
Answers
protected void grdAnswers_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
GetAnswersData(
false);
}
protected void GetAnswersData(bool databind)
{
decimal questionId = 0;
decimal.TryParse(hidQuestionId.Value, out questionId);
Jockey.Data.DALSelectTableAdapters.
QuestionnaireAnswerTableAdapter ata = new Jockey.Data.DALSelectTableAdapters.QuestionnaireAnswerTableAdapter();
Jockey.Data.
DALSelect.QuestionnaireAnswerDataTable alist = ata.QuestionnaireAnswer_S_questionId(questionId);
grdAnswers.DataSource = alist;
if (databind)
{
grdAnswers.DataBind();
}
}
protected void grdAnswers_onitemdatabound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode)
{
//default the AnswerId to zero
GridEditFormInsertItem grd = e.Item as GridEditFormInsertItem;
((
TextBox)grd.FindControl("txtAnswerId")).Text = "0";
}
}
protected void grdAnswers_Edit(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
//Delete
if (e.CommandName == "Delete")
{
try
{
Jockey.Data.DALDeleteTableAdapters.
QuestionnaireAnswerTableAdapter ata = new Jockey.Data.DALDeleteTableAdapters.QuestionnaireAnswerTableAdapter();
Jockey.Data.
DALDelete.QuestionnaireAnswerDataTable adt = ata.QuestionnaireAnswer_D(Decimal.Parse((e.Item as GridDataItem)["answerId"].Text));
}
catch (Exception ex)
{
statusLabel(
false, "Failed to delete record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
//Edit
if (e.CommandName == "Update")
{
try
{
grdAnswers_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
}
protected void grdAnswers_Insert(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
try
{
grdAnswers_Update(sender, e);
}
catch (Exception ex)
{
statusLabel(
false, "Failed to update record. Support has been notified.");
SendEmail.SendEmailMessage("AutoJockey Error", Request.Url + ". \r\n Error: " + ex.ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["errorEmail"].ToString(), ConfigurationManager.AppSettings["MailServer"].ToString());
}
}
protected void grdAnswers_Update(object sender, Telerik.Web.UI.GridCommandEventArgs e)
{
decimal uQuestionId = Decimal.Parse(hidQuestionId.Value);
GridEditableItem item = e.Item as GridEditableItem;
decimal uAnswerId = decimal.Parse(((TextBox)item.FindControl("txtAnswerId")).Text);
string uAnswer = ((TextBox)item.FindControl("txtAnswer")).Text;
Int32 uSequenceNo = Int32.Parse(((TextBox)item.FindControl("txtSequenceNo")).Text);
if (!string.IsNullOrEmpty(uAnswer))
{
Jockey.Data.DALUpdateTableAdapters.
QuestionnaireAnswerTableAdapter ta = new Jockey.Data.DALUpdateTableAdapters.QuestionnaireAnswerTableAdapter();
Jockey.Data.
DALUpdate.QuestionnaireAnswerDataTable dt = ta.QuestionnaireAnswer_U(uAnswerId,
uQuestionId,
uAnswer,
uSequenceNo);
if (Int32.Parse(dt.Rows[0]["retval"].ToString()) < 0) //failed to update
{
throw new Exception(dt.Rows[0]["ErrorMessage"].ToString());
}
}
}
protected void grdAnswers_RowDrop(object sender, GridDragDropEventArgs e)
{
}
protected void btnReturnToQuestions_onclick(object sender, EventArgs e)
{
toggleAnswerTab(
false, false, false);
toggleQuestionnaireTab(
false, false, false);
toggleQuestionTab(
true, true, true);
}
#endregion
protected void statusLabel(bool isSuccess, string message)
{
lblStatus.Text = message;
lblStatus.Visible =
true;
if (!isSuccess)
{
lblStatus.ForeColor = System.Drawing.
Color.Red;
}
else
{
lblStatus.ForeColor = System.Drawing.
Color.Black;
}
}
#region
Toggle Tabs
//these are in separate methods because the tabs do not like to behave properly when all in the
//same method.
protected void toggleQuestionTab(bool isQuestionViewActive, bool isQuestionTabVisible, bool isQuestionTabActive)
{
RadMultiPage multiPage = (RadMultiPage)(Master.FindControl("contentplaceholder1").FindControl("QuestionnairePage"));
//questions
RadPageView QuestionView = multiPage.FindPageViewByID("QuestionView");
QuestionView.Selected = isQuestionViewActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("QuestionTab").Selected = isQuestionTabActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("QuestionTab").Visible = isQuestionTabVisible;
}
protected void toggleQuestionnaireTab(bool isQuestionnaireViewActive, bool isQuestionnaireTabVisible, bool isQuestionnaireTabActive)
{
RadMultiPage multiPage = (RadMultiPage)(Master.FindControl("contentplaceholder1").FindControl("QuestionnairePage"));
//questionnaire
RadPageView QuestionnaireView = multiPage.FindPageViewByID("QuestionnaireView");
QuestionnaireView.Selected = isQuestionnaireViewActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("QuestionnaireTab").Selected = isQuestionnaireTabActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("QuestionnaireTab").Visible = isQuestionnaireTabVisible;
}
protected void toggleAnswerTab(bool isAnswerViewActive, bool isAnswerTabVisible, bool isAnswerTabActive)
{
RadMultiPage multiPage = (RadMultiPage)(Master.FindControl("contentplaceholder1").FindControl("QuestionnairePage"));
//questionnaire
RadPageView QuestionnaireView = multiPage.FindPageViewByID("AnswerView");
QuestionnaireView.Selected = isAnswerViewActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("AnswerTab").Selected = isAnswerTabActive;
((
RadTabStrip)stripQuestionnaire).Tabs.FindTabByValue("AnswerTab").Visible = isAnswerTabVisible;
}
#endregion
}
}
Could you please verify that you do not have xhtmlConformance attribute set in your web config? You may check this blog post by ScottGu for more details on the subject.
Sincerely yours,
Pavlina
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.