J'ai un contrôle utilisateur [ascx] qui est un radgrid. Il a également un modèle de colonne Modifier qui permet à l'utilisateur d'insérer/modifier/mettre à jour les valeurs.Erreur lors du chargement du contrôle utilisateur
Je suis en train de charger cette commande utilisateur en cliquant sur un bouton [Dites EDIT] dans la page aspx.
Lorsque je clique sur le bouton EDIT
de la page aspx, le contrôle de l'utilisateur se charge parfaitement, mais lorsque je clique sur le Add New Record
du contrôle utilisateur, je reçois ce message d'erreur.
Echec du chargement de viewstate. L'arborescence de contrôle dans laquelle viewstate est en cours de chargement doit correspondre à l'arborescence de contrôle utilisée pour enregistrer viewstate lors de la demande précédente. Par exemple, lors de l'ajout dynamique de contrôles , les contrôles ajoutés pendant un post-retour doivent correspondre à le type et la position des contrôles ajoutés lors de la demande initiale .
// code de contrôle utilisateur -ascx
<telerik:RadGrid AllowAutomaticDeletes="True"
AllowAutomaticInserts="False" AllowAutomaticUpdates="False"
Height="410px" ID="rgrd1" runat="server" AutoGenerateColumns="False"
OnUpdateCommand="rgrd1_UpdateCommand"
OnInsertCommand="rgrd1_InsertCommand" OnNeedDataSource="rgrd1_NeedDataSource" GridLines="None">
<MasterTableView CommandItemDisplay="top" CommandItemStyle-Wrap="False" CommandItemStyle-HorizontalAlign="Left"
DataKeyNames="Type">
<Columns>
<telerik:GridEditCommandColumn UniqueName="EditColumn" HeaderStyle-HorizontalAlign="left"
HeaderText="Edit" ButtonType="ImageButton">
</telerik:GridEditCommandColumn>
<telerik:GridTemplateColumn DataField="Type" HeaderStyle-HorizontalAlign="left"
HeaderText="Type" UniqueName="Type">
<ItemTemplate>
<asp:Label ID="TypeLabel" runat="server" Text='<%# Eval("Type") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings EditFormType="Template">
<EditColumn FilterControlAltText="Filter EditCommandColumn1 column" UniqueName="EditCommandColumn1">
</EditColumn>
<FormTemplate>
<table>
<td>
<telerik:RadTextBox ID="txtType" Width="50" runat="server" Text='<%# Eval("Type") %>'>
</telerik:RadTextBox>
</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
<HeaderStyle HorizontalAlign="Center" />
</telerik:RadGrid>
............................. ........ code de ma page ASPX - où je suis le chargement de la usercontrol ci-dessus dans Radwindow
sur clic de bouton EDIT - ci-dessous le code que j'ai written-
RadWindow window = new RadWindow();
window.Height = Unit.Pixel(500);
window.Width = Unit.Pixel(500);
window.VisibleOnPageLoad = true;
UserControl uc = (UserControl)Page.LoadControl("../../Controls/TypeUserControl.ascx");
uc.EnableViewState = false;
window.ContentContainer.Controls.Add(uc);
pnl.Controls.Add(window);
Quand je cliquez sur Add New Record
dans usercontrol il lève l'exception "Impossible de charger l'état d'affichage:"
J'ai la page aspx sur laquelle ce contrôle utilisateur est chargé est héritée par mon BasePage.
Exception vient à OnPreRender de la page de base
protected override void OnPreRender(EventArgs e)
{
try
{
base.OnPreRender(e);
}
}
contrôle de l'utilisateur - Code behing
public partial class TypeUserControl : System.Web.UI.UserControl
{
protected void rgrd1Types_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
try
{
//dbase call
}
catch (Exception ex)
{
SetValidationMessage(ex.Message.ToString());
}
}
protected void rgrd1_InsertCommand(object source, GridCommandEventArgs e)
{
try
{
//dbase call
}
catch (Exception ex)
{
SetValidationMessage(ex.Message.ToString());
}
}
quelle ligne est de lancer l'erreur .. si vous supprimez le chemin et juste avoir les éléments suivants 'UserControl uc = (UserControl) Page.LoadControl (« TypeUserControl.ascx »)?' – MethodMan
exception vient sur l'événement PreRender de la page de base –
s'il vous plaît lire la réponse suivante située ici .. semble que vous ne pouvez pas besoin de cet appel http://stackoverflow.com/questions/18984242/why-and-when-to-override-and-use-onprerender-in -asp-net – MethodMan