2010-06-18 19 views
5

ठीक है अभी यह त्रुटि प्राप्त करना शुरू हो गया है और मुझे यकीन नहीं है कि क्यों। मेरे पास एक होस्टिंग पृष्ठ है जिसमें सूचीदृश्य और उपयोगकर्ता नियंत्रण वाला पैनल है। सूचीदृश्य एक लिंकबटन के साथ रिकॉर्ड लोड करता है। आप उस विशेष रिकॉर्ड को संपादित करने के लिए लिंक बटन पर क्लिक करें - जो फॉर्मूव (उपयोगकर्ता नियंत्रक के भीतर) में लोड हो जाता है जो संपादन मोड में जाता है। फॉर्मूव में अपडेट होने के बाद मैं एक ईवेंट ट्रिगर कर रहा हूं जो मेरा होस्टिंग पेज सुन रहा है। होस्टिंग पेज फिर अद्यतन डेटा दिखाने के लिए सूचीदृश्य को पुनर्निर्मित करता है। यह सब एक अपडेट पैनेल के अंदर है।व्यूस्टेट लोड करने में विफल

तो यह सब काम करता है - लेकिन जब मैं तो एक अलग linkbutton मैं नीचे त्रुटि मिलती है पर क्लिक करने के लिए जाना:

Message: Sys.WebForms.PageRequestManagerServerErrorException: Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request. 

ठीक करने के लिए पर कोई सुझाव?

मेरी सूचीदृश्य सफलतापूर्वक रिबाउंड किया जा रहा प्रतीत होता है - मैं अपना बदला डेटा देख सकता हूं .. मुझे नहीं पता कि जब मैं लिंकबटन पर क्लिक करता हूं तो यह दृश्यस्थल के बारे में शिकायत क्यों करता है। या क्या मेरी सूचीदृश्य में डेटा अपडेट करने का एक बेहतर तरीका है? मेरा लिस्टव्यूव और फॉर्मव्यू ऑब्जेक्टडेटा स्रोतों के लिए बाध्य है (मामले में मामले में)

सहायता के लिए धन्यवाद!

यहां मेरे नियंत्रण का कोडबिंद है। अन्य लोगों को इस त्रुटि FormView के प्रकार के परिवर्तन से के संबंध में किया जा रहा है पर टिप्पणी की है, लेकिन सफलता नहीं मिली कुछ परिवर्तन की कोशिश की है:

public partial class UserControls_RatesEditDate : System.Web.UI.UserControl 
{ 

    public delegate void EditDateRateEventHandler(DateTime theDateTime); 
    public event EditDateRateEventHandler EditDateRateSelected; 

    public delegate void UpdateDateRateEventHandler(); 
    public event UpdateDateRateEventHandler EditDateRateUpdated; 

    public int PropertyID { get; set; } 
    public int AccommodationTypeID { get; set; } 
    public DateTime TheDateTime { get; set; } 
    public PropertyCMSRate Rate { get; set; } 

    // display filters 
    public bool DisplayMTABuy { get; set; } 
    public bool DisplayMTASell { get; set; } 
    public bool DisplayAffiliate { get; set; } 
    public bool DisplayWeekly { get; set; } 
    public bool DisplayThirtyDay { get; set; } 
    public bool DisplayFlexi { get; set; } 

    protected void Page_PreRender(object sender, EventArgs e) 
    { 
     if (Rate != null || TheDateTime != DateTime.MinValue) 
     { 
      if (TheDateTime == DateTime.MinValue) 
      { 
       frmViewRatesDate.DataSource = new List<PropertyCMSRate> { Rate }; 
      } 
      else 
      { 
       PropertyCMSRateItemDs.SelectParameters["propertyID"].DefaultValue = PropertyID.ToString(); 
       PropertyCMSRateItemDs.SelectParameters["accommodationTypeId"].DefaultValue = AccommodationTypeID.ToString(); 
       PropertyCMSRateItemDs.SelectParameters["theDateTime"].DefaultValue = TheDateTime.ToString(); 
       frmViewRatesDate.DataSourceID = "PropertyCMSRateItemDs"; 

       frmViewRatesDate.ChangeMode(FormViewMode.Edit); 
      } 

      frmViewRatesDate.DataBind(); 

      if (frmViewRatesDate.CurrentMode == FormViewMode.Edit) 
      { 
       ((HiddenField)frmViewRatesDate.FindControl("hdnPropertyID")).Value = PropertyID.ToString(); 
       ((HiddenField)frmViewRatesDate.FindControl("hdnAccommTypeID")).Value = AccommodationTypeID.ToString(); 

      } 

     } 
    } 

    protected void lnkEditDate_Click(object sender, EventArgs e) 
    { 
     if (EditDateRateSelected != null) 
      EditDateRateSelected(Convert.ToDateTime(((LinkButton)frmViewRatesDate.Row.FindControl("lnkEditDate")).Text)); 

    } 

    protected void btnUpdate_Click(object sender, EventArgs e) 
    { 

     if (Page.IsValid) 
     { 
      if (EditDateRateUpdated != null) 
       EditDateRateUpdated(); 
     } 

    } 

    protected void frmViewRatesDate_ItemCommand(object sender, FormViewCommandEventArgs e) 
    { 
     if (e.CommandName == "Update") 
     { 
      PropertyCMSRateItemDs.UpdateParameters["propertyId"].DefaultValue = ((HiddenField)frmViewRatesDate.FindControl("hdnPropertyID")).Value; 
      PropertyCMSRateItemDs.UpdateParameters["accommodationTypeId"].DefaultValue = ((HiddenField)frmViewRatesDate.FindControl("hdnAccommTypeID")).Value; 
      PropertyCMSRateItemDs.UpdateParameters["minStay"].DefaultValue = ((DropDownList)frmViewRatesDate.FindControl("EditPriceMinStayList")).SelectedValue; 
     } 
    } 

    protected void PropertyCMSRateItemDs_Updated(object sender, ObjectDataSourceStatusEventArgs e) 
    { 

     if (EditDateRateUpdated != null) 
      EditDateRateUpdated(); 
    } 
} 

ठीक यहाँ मेरी aspx पृष्ठ है - खेद महसूस किया कि बाद मैं करने के लिए पद छोड़ मदद कर सकता है खाना पकड़ो :) कि शब्द वाले मेरी सूचीदृश्य से पहले एक टिप्पणी डाल दिया है ..

<%@ MasterType VirtualPath="~/Properties-Cms/AddEdit.master" %> 
<%@ Register Src="../UserControls/RatesEditDate.ascx" TagName="RatesEditDate" TagPrefix="uc1" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <Triggers> 
     </Triggers> 
     <ContentTemplate> 
       <asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="Main" /> 
      <div class="bluebox"> 
       <asp:ValidationSummary ID="ValidationSummary2" runat="server" ValidationGroup="AddAccommodationType" /> 
       <asp:CustomValidator ID="DisplayPriceValidation" Display="Dynamic" runat="server" OnServerValidate="DisplayPrice_Validated" 
           ValidationGroup="Main" ErrorMessage="Please ensure you have selected Accommodation and selected a valid display rates option"> 
          </asp:CustomValidator> 
       <div class="col33"> 
        <!-- accommodation --> 
        <div class="field"> 
         <asp:Label ID="Label1" runat="server" Text="Select Accommodation" AssociatedControlID="Accommodations1" /> 
         <asp:DropDownList ID="Accommodations1" runat="server" AutoPostBack="true" DataTextField="AccommodationTypeDescription" 
          DataValueField="Id" OnDataBound="Accommodations1_DataBound" OnSelectedIndexChanged="Accommodations1_SelectedIndexChanged" 
          Width="200px" DataSourceID="AccommodationDs"> 
         </asp:DropDownList> 
         <asp:ObjectDataSource ID="AccommodationDs" runat="server" OldValuesParameterFormatString="original_{0}" 
          SelectMethod="ListByPropertyId" TypeName="Shared.MtaLib.Bll.PropertyAccommodationController"> 
          <SelectParameters> 
           <asp:Parameter Name="PropertyId" Type="Int32" /> 
          </SelectParameters> 
         </asp:ObjectDataSource> 
        </div> 
       </div> 
       <!-- middle column --> 
       <div class="col33"> 
        <ul style="list-style-type: none;"> 
         <li> 
          <asp:Label ID="Label100" runat="server" Text="Accommodation" AssociatedControlID="lblAccom" />&nbsp;<asp:Label 
           ID="lblAccom" runat="server" Text="" /></li> 
         <li> 
          <asp:Label ID="Label101" runat="server" Text="Local Label" AssociatedControlID="lblLocalLabel" />&nbsp;<asp:Label 
           ID="lblLocalLabel" runat="server" Text="" /></li> 
        </ul> 
       </div> 
       <!--Right hand side Level 1 --> 
       <div class="col33"> 
        <asp:Button runat="server" ID="btnAddAccommodation" Text="Add Accommodation" OnClick="btnAddAccommodation_Click" /><br /> 
        <br /> 
        <asp:LinkButton runat="server" ID="lnkEditAccommodation" Text="View/Edit available Accommodations" 
         OnClick="lnkEditAccommodation_Click" /> 
        <br /> 
       </div> 
       <div style="clear: both;"> 
       </div> 
      </div> 
      <!--Left hand side Level 2 --> 
      <asp:Panel runat="server" ID="pnlViewAccommodationRatesDates"> 
       <div style="clear: both;" /> 
       <div class="box"> 
        <div class="col40"> 
         Display rates Range<br /> 
         <asp:RadioButton ID="ViewRange" runat="server" GroupName="DisplayDate" Checked="true" /> 
         <asp:Label runat="server" ID="Label5" AssociatedControlID="txtDisplayFrom" Text="From" /> 
         <asp:TextBox ID="txtDisplayFrom" runat="server"></asp:TextBox> 
         <asp:Label runat="server" ID="Label6" AssociatedControlID="txtDisplayTo" Text="To" /> 
         <asp:TextBox ID="txtDisplayTo" runat="server"></asp:TextBox> 
        </div> 
        <div class="col20"> 
         <br /> 
         <asp:RadioButton ID="ViewRange1" runat="server" GroupName="DisplayDate" Text="Next 1 month" /><br /> 
         <asp:RadioButton ID="ViewRange3" runat="server" GroupName="DisplayDate" Text="Next 3 month" /><br /> 
         <asp:RadioButton ID="ViewRange6" runat="server" GroupName="DisplayDate" Text="Next 6 month" /> 
        </div> 
        <div class="col20"> 
         Show<br /> 
         <asp:CheckBox ID="chkDisplayMTABuy" runat="server" Text="MTA Buy" Checked="true" /><br /> 
         <asp:CheckBox ID="chkDisplayMTASell" runat="server" Text="MTA Sell" Checked="true" /><br /> 
         <asp:CheckBox ID="chkDisplayAffiliateNett" runat="server" Text="Affiliate Nett" Checked="true" /><br /> 
         <asp:CheckBox ID="chkDisplayWeekly" runat="server" Text="Weekly" Checked="true" /><br /> 
         <asp:CheckBox ID="chkDisplay30Day" runat="server" Text="30 Day" Checked="true" /><br /> 
         <asp:CheckBox ID="chkDisplayFlexi" runat="server" Text="Flexi" Checked="true" /> 
        </div> 
        <div class="col20"> 
         <br /> 
         <br /> 
         <br /> 
         <asp:Button ID="btnDisplayRates" runat="server" Text="Display Rates" OnClick="btnDisplayRates_Click" /> 
         <br /> 
         <br /> 
         <asp:LinkButton ID="lnkAddEditRate" runat="server" Text="Add/Edit Rates" OnClick="lnkAddEditRate_Click" /> 
        </div> 
        <div style="clear: both;" /> 
       </div> 
      </asp:Panel> 
      <!-- hidden panel removed as I'm out of characters --> 
      <!-- Listview containing user control.. usercontrol has formview with a linkbutton --> 
      <asp:Panel runat="server" ID="pnlViewAccommodationRates" Visible="false"> 
       <div class="propertyaddedit_ratesbox"> 
        <fieldset> 
         <legend>Click on individual dates to edit</legend> 
         <asp:Panel ID="Panel5" runat="server" ScrollBars="Vertical" Height="400"> 
          <asp:ListView ID="PropertyAccommodationRates1" runat="server" DataSourceID="PropertyCMSRateListDs" 
           ItemPlaceholderID="itemsGoHere" OnItemDataBound="PropertyAccommodationRates1_ItemDataBound" 
           GroupItemCount="7" GroupPlaceholderID="groupsGoHere"> 
           <GroupTemplate> 
            <tr> 
             <asp:PlaceHolder runat="server" ID="itemsGoHere" /> 
            </tr> 
           </GroupTemplate> 
           <ItemTemplate> 
            <td> 
             <uc1:RatesEditDate ID="RatesViewDate1" runat="server" OnEditDateRateSelected="RatesEditDate1_EditDateRateSelected" 
              OnEditDateRateUpdated="RatesEditDate1_EditDateRateUpdated" /> 
            </td> 
           </ItemTemplate> 
           <LayoutTemplate> 
            <table width="525px" cellspacing="2"> 
             <tr class="propertyaddedit_gridViewRates"> 
              <th class="propertyaddedit_ratesGrid"> 
               Monday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Tuesday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Wednesday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Thursday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Friday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Saturday 
              </th> 
              <th class="propertyaddedit_ratesGrid"> 
               Sunday 
              </th> 
             </tr> 
             <tr> 
              <asp:PlaceHolder runat="server" ID="groupsGoHere" /> 
             </tr> 
            </table> 
           </LayoutTemplate> 
          </asp:ListView> 
          <asp:ObjectDataSource ID="PropertyCMSRateListDs" runat="server" SelectMethod="ListPropertyCMSRates" 
           TypeName="Shared.MtaLib.Bll.PropertyRateController" OnSelecting="PropertyCMSRateListDs_Selecting"> 
           <SelectParameters> 
            <asp:Parameter Name="propertyId" Type="Int32" /> 
            <asp:Parameter Name="accommodationTypeId" Type="Int32" /> 
            <asp:Parameter Name="minDateTime" Type="DateTime" /> 
            <asp:Parameter Name="maxDateTime" Type="DateTime" /> 
            <asp:Parameter Name="fillMondays" Type="Boolean" DefaultValue="true" /> 
           </SelectParameters> 
          </asp:ObjectDataSource> 
         </asp:Panel> 
        </fieldset> 
       </div> 
      </asp:Panel> 



      <div style="clear: both;"> 
      </div> 
      <!-- this is the usercontrol where the edit occurs --> 
      <div runat="server" id="divEditRate" visible="true"> 
       <uc1:RatesEditDate ID="RatesEditDate1" runat="server" /> 
      </div> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</asp:Content> 

मेरे उपयोगकर्ता नियंत्रण:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="RatesEditDate.ascx.cs" 
    Inherits="UserControls_RatesEditDate" %> 
<asp:FormView ID="frmViewRatesDate" runat="server" Height="50px" Width="125px" OnItemCommand="frmViewRatesDate_ItemCommand" 
    DataKeyNames="TheDateTime"> 
    <ItemTemplate> 
     <asp:LinkButton ID="lnkEditDate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "TheDateTime", "{0:dd/MM/yyyy}") %>' 
      OnClick="lnkEditDate_Click" /> 
     <asp:Literal ID="Literal1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTABuyRateDaily", "{0:n}") %>' 
      Visible='<%# DisplayMTABuy %>' /> 
     <asp:Literal ID="Literal2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTASellRateDaily", "{0:n}") %>' 
      Visible='<%# DisplayMTASell %>' /> 
     <asp:Literal ID="Literal3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AffiliateNettDaily", "{0:n}") %>' 
      Visible='<%# DisplayAffiliate %>' /> 
     <asp:Literal ID="Literal4" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTABuyRateWeekly", "{0:n}") %>' 
      Visible='<%# DisplayWeekly %>' /> 
     <asp:Literal ID="Literal5" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTASellRateWeekly", "{0:n}") %>' 
      Visible='<%# DisplayWeekly %>' /> 
     <asp:Literal ID="Literal6" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AffiliateNettWeekly", "{0:n}") %>' 
      Visible='<%# DisplayWeekly %>' /> 
     <asp:Literal ID="Literal7" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ThirtyDay", "{0:n}") %>' 
      Visible='<%# DisplayThirtyDay %>' /> 
     <asp:Literal ID="Literal8" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Flexi", "{0:n}") %>' 
      Visible='<%# DisplayFlexi %>' /> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <div class="field"> 
      <asp:Literal ID="TheDate" runat="server" Text='<%# Bind("TheDateTime", "{0:dd/MM/yyyy}") %>' /> 
     </div> 
     <div class="field"> 
      <asp:Label ID="Label1" Text="MTA buy rate" AssociatedControlID="MTABuyRate1" runat="server" /><asp:TextBox 
       ID="MTABuyRate1" runat="server" Text='<%# Bind("MTABuyRateDaily", "{0:n}")%>' /> 
      <asp:CompareValidator ID="MTABuyRateValidator" runat="server" Type="Currency" ControlToValidate="MTABuyRate1" 
       Operator="GreaterThan" ValueToCompare="0" ErrorMessage="" Display="Dynamic" ValidationGroup="EditPrice"> 
       <asp:Image ID="Image8" SkinID="ValidationErrorImage" runat="server" /> 
      </asp:CompareValidator> 
      <asp:RequiredFieldValidator ID="MTABuyRateValidator2" runat="server" ControlToValidate="MTABuyRate1" 
       ErrorMessage="" Display="Dynamic" ValidationGroup="EditPrice"> 
       <asp:Image ID="Image33" SkinID="ValidationErrorImage" runat="server" /> 
      </asp:RequiredFieldValidator> 
     </div> 
     <!-- similar items removed due to character restriction --> 
     <div class="field"> 
      <asp:Label ID="Label6" Text="Total PAX" runat="server" AssociatedControlID="TotalPax1" /> 
      <asp:CompareValidator ID="TotalPaxValidator1" runat="server" ControlToValidate="TotalPax1" 
       Operator="NotEqual" ValueToCompare="0" ErrorMessage="Please choose a non zero Total Pax " 
       Display="Dynamic" ValidationGroup="EditPrice"> 
       <asp:Image ID="Image15" SkinID="ValidationErrorImage" runat="server" /> 
      </asp:CompareValidator> 
      <asp:DropDownList ID="TotalPax1" runat="server"> 
       <asp:ListItem Value="0" /> 
       <asp:ListItem Value="1" /> 
       <asp:ListItem Value="2" /> 
       <asp:ListItem Value="3" /> 
       <asp:ListItem Value="4" /> 
       <asp:ListItem Value="5" /> 
       <asp:ListItem Value="6" /> 
       <asp:ListItem Value="7" /> 
       <asp:ListItem Value="8" /> 
       <asp:ListItem Value="9" /> 
       <asp:ListItem Value="10" /> 
      </asp:DropDownList> 
     </div> 
     <div class="field"> 
      <asp:Label runat="server" ID="Label15" AssociatedControlID="EditPriceMinStayList" 
       Text="Min stay (nights)" /> 
      <asp:CompareValidator ID="EditPriceMinStayListValidator1" runat="server" ControlToValidate="EditPriceMinStayList" 
       Operator="NotEqual" ValueToCompare="0" ErrorMessage="Please choose a non zero Min Stay" 
       Display="Dynamic" ValidationGroup="EditPrice"> 
       <asp:Image ID="Image6" SkinID="ValidationErrorImage" runat="server" /> 
      </asp:CompareValidator> 
      <!-- todo bind--> 
      <asp:DropDownList ID="EditPriceMinStayList" runat="server"> 
       <asp:ListItem Value="0" /> 
       <asp:ListItem Value="1" /> 
       <asp:ListItem Value="2" /> 
       <asp:ListItem Value="3" /> 
       <asp:ListItem Value="4" /> 
       <asp:ListItem Value="5" /> 
       <asp:ListItem Value="6" /> 
       <asp:ListItem Value="7" /> 
       <asp:ListItem Value="8" /> 
       <asp:ListItem Value="9" /> 
       <asp:ListItem Value="10" /> 
       <asp:ListItem Value="11" /> 
       <asp:ListItem Value="12" /> 
       <asp:ListItem Value="13" /> 
       <asp:ListItem Value="14" /> 
       <asp:ListItem Value="15" /> 
       <asp:ListItem Value="16" /> 
       <asp:ListItem Value="17" /> 
       <asp:ListItem Value="18" /> 
       <asp:ListItem Value="19" /> 
       <asp:ListItem Value="20" /> 
       <asp:ListItem Value="21" /> 
       <asp:ListItem Value="22" /> 
       <asp:ListItem Value="23" /> 
       <asp:ListItem Value="24" /> 
       <asp:ListItem Value="25" /> 
       <asp:ListItem Value="26" /> 
       <asp:ListItem Value="27" /> 
       <asp:ListItem Value="28" /> 
       <asp:ListItem Value="29" /> 
       <asp:ListItem Value="30" /> 
      </asp:DropDownList> 
     </div> 
     <div class="field"> 
      <%--<asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" CommandName="Update" />--%> 
      <asp:Button ID="btnUpdate" runat="server" Text="Update" CommandName="Update" ValidationGroup="EditPrice" /> 
     </div> 
     <asp:HiddenField runat="server" ID="hdnPropertyID" /> 
     <asp:HiddenField runat="server" ID="hdnAccommTypeID" /> 
    </EditItemTemplate> 
</asp:FormView> 
<asp:ObjectDataSource ID="PropertyCMSRateItemDs" runat="server" SelectMethod="ListPropertyCMSRate" 
    TypeName="Shared.MtaLib.Bll.PropertyRateController" UpdateMethod="UpdatePropertyCMSRate" 
    OldValuesParameterFormatString="original_{0}" OnUpdated="PropertyCMSRateItemDs_Updated"> 
    <UpdateParameters> 
     <asp:Parameter Name="propertyId" Type="Int32" /> 
     <asp:Parameter Name="accommodationTypeId" Type="Int32" /> 
     <asp:Parameter Name="minStay" Type="Int32" /> 
     <asp:Parameter Name="TheDateTime" Type="DateTime" /> 
     <asp:Parameter Name="MTABuyRateDaily" Type="Decimal" /> 
     <asp:Parameter Name="MTASellRateDaily" Type="Decimal" /> 
     <asp:Parameter Name="AffiliateNettDaily" Type="Decimal" /> 
     <asp:Parameter Name="MTABuyRateWeekly" Type="Decimal" /> 
     <asp:Parameter Name="MTASellRateWeekly" Type="Decimal" /> 
     <asp:Parameter Name="AffiliateNettWeekly" Type="Decimal" /> 
     <asp:Parameter Name="ThirtyDay" Type="Decimal" /> 
     <asp:Parameter Name="Flexi" Type="Decimal" /> 
     <asp:Parameter Name="IsBreakfastIncluded" Type="Boolean" /> 
     <asp:Parameter Name="IsFairWarning" Type="Boolean" /> 
     <asp:Parameter Name="TotalPax" Type="Int32" /> 
     <asp:Parameter Name="original_TheDateTime" Type="DateTime" /> 
    </UpdateParameters> 
    <SelectParameters> 
     <asp:Parameter Name="propertyId" Type="Int32" DefaultValue="0" /> 
     <asp:Parameter Name="accommodationTypeId" Type="Int32" DefaultValue="0" /> 
     <asp:Parameter Name="theDateTime" Type="DateTime" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 
+0

एकमात्र गतिशील नियंत्रण जो मैं सोच सकता हूं - ऐसा इसलिए है क्योंकि listview itemtemplate में उपयोगकर्ता नियंत्रण होता है। और जैसा कि मैं सूचीदृश्य पर पुनर्विचार बुला रहा हूं, पेज लोड होने पर पहली बार यह अलग होगा। लेकिन मुझे नए डेटा को प्रतिबिंबित करने के लिए सूचीदृश्य को किसी भी तरह रीफ्रेश करना होगा। या मुद्दा अधिक अद्यतन पैनल से संबंधित है? – Jen

+0

मेरे अपडेट पैनेल को हटा दिया और मुझे अभी भी वही त्रुटि मिलती है। मेरी सूची दृश्य के डेटाबेस को टिप्पणी करने का भी प्रयास किया और अभी भी वही त्रुटि प्राप्त करें .. तो जाहिर है कुछ और है। – Jen

+0

मेरी सूचीदृश्य और/या मेरे फॉर्मूव दोनों पर अक्षम होने के लिए व्यूस्टेट सेट करने का प्रयास किया - और ऐसा करने से पृष्ठ को इस तरह काम नहीं कर रहा था। जब मैंने अपने लिंकबटन पर क्लिक किया तो ग्रिड इसके आइटम खो देगा .. या नियंत्रण संपादन मोड में प्रदर्शित नहीं किया जाएगा। – Jen

उत्तर

1

वैसे ऐसा लगता है कि मेरा मुद्दा फॉर्मूव और बदलते मोड से संबंधित है।

मैंने एक फॉर्मूव्यू के साथ दूसरा उपयोगकर्ता नियंत्रण बनाया है जिसमें केवल संपादन आइटम टेम्पलेट है और मैंने संपादन करने के लिए डिफ़ॉल्ट मोड सेट किया है।संपादन के लिए इसका उपयोग करना, और दरों को देखने के लिए मूल एक को व्यूस्टेट त्रुटि से छुटकारा मिल गया है।

यह स्पष्ट रूप से आदर्श नहीं है क्योंकि मुझे ऐसा करने की ज़रूरत नहीं है - लेकिन जब मैंने परिवर्तनों को सहेजने के बाद इसे रीडोनली मोड पर स्विच करने के लिए मजबूर करने की कोशिश नहीं की - मैंने जो कुछ भी कोशिश की, वह दृश्य दृश्य त्रुटि को रोक देगा। इस मुद्दे पर पहले से ही काफी समय बिताया - आगे बढ़ने का समय !! लोगों के सुझावों के लिए धन्यवाद :)

4

यह अपने पूरे aspx पेज के माध्यम से देख के बिना आप एक सटीक जवाब देने के लिए कठिन है, लेकिन आम तौर पर ऐसी समस्याएं तब होती हैं जब आप उन तत्वों को संशोधित कर रहे हैं जिनमें जावास्क्रिप्ट का उपयोग करके व्यूस्टेट सक्षम है। जब आप अपने सर्वर पर वापस पोस्ट करते हैं (उदाहरण के लिए लिंक बटन पर क्लिक करके), तो आपके पृष्ठ पर व्यूस्टेट सर्वर की तलाश के दृश्य से अलग है, इसलिए यह क्रैश हो जाता है। यह एक सुरक्षा उपाय है।

क्या आप अपडेट पैनल के माध्यम से AJAX का उपयोग कर रहे हैं? क्या आपके पास अपने पृष्ठ के कुछ हिस्सों को एक अपडेट पैनल में है और कुछ नहीं? शायद आपका कार्यक्रम कुछ नियंत्रण अपडेट कर रहा है, न कि दूसरों को।

क्या आप अपने एएसपीएक्स पेज का एक एनोटेटेड संस्करण प्रदान कर सकते हैं जिसे हम देख सकते हैं?

2

यह समस्या मेरा हालिया दुःस्वप्न भी था। ऐसी कई संभावनाएं हैं जो "दृश्य लोड करने में विफल" त्रुटि के साथ समाप्त हो सकती हैं। अधिकांश समय, यह गतिशील रूप से बनाए गए नियंत्रण से संबंधित है और नियंत्रण के दृश्य गुण जो पृष्ठ में जोड़े गए नियंत्रणों के पदानुक्रम को बदल सकते हैं।

मेरे ज्ञान के लिए, समस्या नियंत्रण के दृश्यमान गुणों के चारों ओर घूम सकती है। कृपया पहले दृश्यमान गुणों को डेटाबेस को हटाने का प्रयास करें और देखें कि यह कैसा चल रहा है।

<asp:Literal ID="Literal1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTABuyRateDaily", "{0:n}") %>' 
     Visible='<%# DisplayMTABuy %>' /> 
    <asp:Literal ID="Literal2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTASellRateDaily", "{0:n}") %>' 
     Visible='<%# DisplayMTASell %>' /> 
    <asp:Literal ID="Literal3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AffiliateNettDaily", "{0:n}") %>' 
     Visible='<%# DisplayAffiliate %>' /> 
    <asp:Literal ID="Literal4" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTABuyRateWeekly", "{0:n}") %>' 
     Visible='<%# DisplayWeekly %>' /> 
    <asp:Literal ID="Literal5" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MTASellRateWeekly", "{0:n}") %>' 
     Visible='<%# DisplayWeekly %>' /> 
    <asp:Literal ID="Literal6" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AffiliateNettWeekly", "{0:n}") %>' 
     Visible='<%# DisplayWeekly %>' /> 
    <asp:Literal ID="Literal7" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ThirtyDay", "{0:n}") %>' 
     Visible='<%# DisplayThirtyDay %>' /> 
    <asp:Literal ID="Literal8" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Flexi", "{0:n}") %>' 
     Visible='<%# DisplayFlexi %>' /> 
+0

सुझाव के लिए धन्यवाद - लेकिन कोई खुशी नहीं। अभी भी अक्षर पर सभी दृश्य गुणों को हटाने के बाद त्रुटि प्राप्त हो रही है। – Jen

5

मैंने कई घंटे और दिनों के लिए इस समस्या से लड़ा है। कोई भी जवाब जो मैंने पाया है, मेरी समस्या पूरी तरह से हल नहीं हुई है, लेकिन मुझे अंततः समाधान मिला।

मेरा परिदृश्य इस प्रकार है। मेरे पास एक ग्रिड व्यू और एक फॉर्म व्यू है। ये मल्टीव्यू नियंत्रण के दो विचारों पर हैं। मैं ग्रिड व्यू में डेटा की एक सूची प्रदर्शित करता हूं। मेरा संपादन बटन फॉर्म व्यू पर स्विच करता है क्योंकि ग्रिडव्यू (बिना क्षैतिज स्क्रॉलिंग के) पर क्षैतिज रेखा में फिट होने के अलावा मैं और अधिक फ़ील्ड संपादित करना चाहता हूं।

अगर मैं फॉर्म व्यू के संपादन मोड से रद्द करता हूं और ग्रिड व्यू (मैं इसे करने के लिए ऑनक्लिक ईवेंट का उपयोग करता हूं) पर लौटता हूं, अगली बार जब कोई पोस्टबैक होता है, तो मुझे व्यूस्टेट त्रुटि मिलती है।

अगर मैं फॉर्म व्यू के संपादन मोड से रद्द करता हूं और केवल रीडऑनली मोड पर स्विच करता हूं और फिर ग्रिड व्यू पर वापस जाने को रद्द करता हूं, तो सब कुछ ठीक काम करता है।

समाधान: मेरा समाधान फॉर्म व्यू के डिफ़ॉल्ट मोड को "संपादित करें" पर सेट करना था। मेरा सिद्धांत यह है कि यदि फॉर्मव्यू डिफ़ॉल्ट मोड "केवल पढ़ने के लिए" है, जब मैं फॉर्म व्यू के संपादन मोड से रद्द करता हूं, अगली बार पृष्ठ लोड होने पर, यह संपादन मोड के व्यूस्टेट को रीडऑनली मोड पर लागू करने का प्रयास करता है (डिफ़ॉल्ट जब पृष्ठ लोड होता है)। डिफ़ॉल्ट संपादन को "संपादित करें" पर सेट करके, संपादन मोड के साथ सहेजे गए व्यूस्टेट को पृष्ठ लोड के बाद अब नए संपादन मोड (डिफ़ॉल्ट) में पुनः लोड किया गया है।

यह सब तब होता है जब मल्टीव्यू का वर्तमान सक्रिय दृश्य ग्रिड प्रदर्शित करता है और फॉर्म नहीं।

मैं FormView लिए "संपादन"

आशा इस मदद करता है की डिफ़ॉल्ट मोड स्विचन के बाद से किसी भी ViewState समस्या नहीं है, और मैं किसी भी टिप्पणी का स्वागत करते।

धन्यवाद।

हार्व Sather

0

viewstate इस मुख्य रूप से होता है, जबकि कुछ एएसपी नियंत्रण जो बाद वापस instace या Async पोस्टबैक घटना

उदाहरण के साथ दृश्य में परिवर्तन के लिए अंतर्निहित आदेशों के का उपयोग कर लोड करने में असफल: नियंत्रण Gridview की तरह , Multiview, Formview, Listview

सब से ऊपर नियंत्रण घटनाओं 'edit' इस बिंदु पर (मोड संपादित करने के लिए convers जो) की तरह आदेश के लिए कोई 2 घटना 1 की तरह मौजूद है) 'onrowediting' 2) 'onrowedited' नोट 2 इवेंट शामिल नहीं है मौजूद। यदि आप इस बिंदु पर गतिशील रूप से नियंत्रण जोड़ने की कोशिश कर रहे हैं 'व्यूस्टेट लोड करने में विफल' होता है।

समाधान: हम की तरह 'select' जो 1 की तरह दोनों अलग-अलग घटनाओं) 'onselectedindexchanging' और 2) 'onselectedindexchanged'

उपयोग 2 घटना हम जोड़ सकते हैं जहां नियंत्रण और सेट है आदेशों का उपयोग करने की आवश्यकता है सीएसएस, गुण .. गतिशील रूप से। जो व्यूस्टेट त्रुटि लोड करने में विफल नहीं होगा। लेकिन अगर हम इसे पहली घटना में उपयोग कर रहे हैं तो यह त्रुटि फेंक सकता है।

संबंधित मुद्दे