Object reference not set to an instance of an object
Description: HTTP 500. Error processing request.
Stack Trace:
System.NullReferenceException: Object reference not set to an instance of an object |
Version information: Mono Runtime Version: 2.6.7 (tarball Wed Jul 14 18:00:47 UTC 2010); ASP.NET Version: 2.0.50727.1433
App_LocalResources funtionieren in bestimmten Fällen nicht
- BoundField.Headertext (muss auf TemplateField umgestellt werden)
- Hinzugefügte Properties bei ServerControls (Problem tritt nicht bei geerbten Properties auf)
Stile bei BoundField
- Row-Style, Header-Style usw. kann im statischen DV vom Code in ??? nicht festgelegt werden, wenn deklarativ über ASP gesetzt. (z.B. DetailsView1_DataBound). Vermutlich überschreibt die deklarative Einstellung nach ???.
- Man muss auf deklarative Variante gänzlich verzichten, wenn per Code gesetzt werden soll. immer per Code zuweisen.
fehlende Ressourcendatei bei meta:resourcekey
A resource object was not found at the specified virtualPath.
Tritt unter Mono 2.4.4, bei Erstaufruf einer Seite auf. Der Call-Stack deutet auf ein Problem mit den lokalen Resourcen hin.
Die Ursache war eine fehlende lokale Ressourcendatei bei Verwendung von meta:resourcekey in einer Masterpage. Offenbar müssen die Ressourcendateien existieren. Normalerweise tritt der Fehler nur bei nicht aktuellen lokalen Ressourcendateien auf und sollte sich mit Aktualisierung der Ressourcendateien beheben lassen.
BoundField.Readonly in DetailsView1_DataBound
The requested operation caused a stack overflow.
In DetailsView1_DataBound darf ReadOnly für ein BoundField nicht gesetzt werden, da DetailsView1_DataBound neu aufgerufen wird.
at Billing_Forms_StatisticInfo.DetailsView1_DataBound (System.Object sender, System.EventArgs e) [0x00000] at System.Web.UI.WebControls.BaseDataBoundControl.OnDataBound (System.EventArgs e) [0x00000] at System.Web.UI.WebControls.DataBoundControl.PerformSelect () [0x00000] at System.Web.UI.WebControls.BaseDataBoundControl.DataBind () [0x00000] at System.Web.UI.WebControls.DetailsView.DataBind () [0x00000] at System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound () [0x00000] at System.Web.UI.WebControls.DetailsView.EnsureDataBound () [0x00000] at System.Web.UI.WebControls.BaseDataBoundControl.set_RequiresDataBinding (Boolean value) [0x00000] at System.Web.UI.WebControls.DetailsView.RequireBinding () [0x00000] at System.Web.UI.WebControls.DetailsView.OnFieldsChanged (System.Object sender, System.EventArgs args) [0x00000] at System.Web.UI.WebControls.DataControlFieldCollection.OnFieldsChanged () [0x00000] at System.Web.UI.WebControls.DataControlFieldCollection.OnFieldChanged (System.Object sender, System.EventArgs args) [0x00000] at System.Web.UI.WebControls.DataControlField.OnFieldChanged () [0x00000] at System.Web.UI.WebControls.BoundField.set_ReadOnly (Boolean value) [0x00000] at Billing_Forms_StatisticInfo.DetailsView1_DataBound (System.Object sender, System.EventArgs e) [0x00000]
Ferner funktionieren Zuweisungen nicht
TreeView: Zuweisen von Node.Selected löst SelectedNodeChanged aus
SelectedNodeChanged ausgelöst (bei Windows nicht). Das kann man unterdrücken:
load = true;
selectedNode.Selected = true;
load = false;
DetailsView - Server-Controls statisch
Die Reihenfolge der Zuweisung der Properties ist unterschiedlich. Demzufolge kann man keine Annahme über die Reihenfolge des Aufrufs der Accessors machen. Das Ereignis DataBound kommt bei Linux nicht.
Linux:
Nsoft.Com.WebControls.AddressSelect INFO AddressSelectControl_DataBinding
Nsoft.Com.WebControls.AddressSelect INFO AddressSelect_set_Value value2 entityId=
Nsoft.Com.WebControls.AddressSelect INFO AddressSelect_set_EntityId value3 entityId=3
Windows;
Nsoft.Com.WebControls.AddressSelect INFO AddressSelectControl_DataBinding
Nsoft.Com.WebControls.AddressSelect INFO AddressSelect_set_EntityId value2 entityId=2
Nsoft.Com.WebControls.AddressSelect INFO Listitem insetred1
Nsoft.Com.WebControls.AddressSelect INFO AddressSelect_set_Value value2 entityId=2
Nsoft.Com.WebControls.AddressSelect INFO AddressSelectControl_DataBound2
ViewState-Verlust letztes BoundField dynamisch (2.4.4)
Die dynamische Erzeugung von BoundField-abgeleitete Klassen funktioniert, allerdings verliert das letzte Feld nach dem Postback Teile seines Viewstate (HeaderText, ReadOnly, DataField, Options). Dadurch wird die Darstellung beeinträchtigt, bzw. führt zu Fehlern. Die Werteingliederung bei Update funktioniert nicht.
ASP INFO ASP.admin_entityinspector_aspx Page_PreInit OK
AdminService INFO PreparePaymentTemplate providerId:13
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:SupplierBankCode
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue DataItem:System.Data.DataRowView
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:SupplierBankName
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue DataItem:System.Data.DataRowView
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:SupplierAccountNumber
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue DataItem:System.Data.DataRowView
2010-07-06 09:22:27.9058 BLL INFO GetSysState id:DateTimeNow
ASP INFO ASP.admin_entityinspector_aspx Page_PreInit OK
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:SupplierBankCode
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:SupplierBankName
ASP INFO Nsoft.Web.WebControls.StringBoundField InitializeValue Control:System.Web.UI.WebControls.DetailsView DataField:
ASP INFO AttributeHelper DataViewUpdate DataField:SupplierBankCode
ASP INFO AttributeHelper DataViewUpdate value:65656
ASP INFO AttributeHelper DataViewUpdate DataField:SupplierBankName
ASP INFO AttributeHelper DataViewUpdate value:565465
ASP INFO AttributeHelper DataViewUpdate DataField:
ASP INFO AttributeHelper DataViewUpdate value:5467546
Als Lösung wird bei dynamischem DetailsView ein zusätzliches unsichtbares BoundField erzeugt, da der ViewState-Verlust nur das letzte Feld betrifft. Das Unsichtbarmachen kann in Page_PreRender über die letzte Row erfolgen. Die Erkennung wurde mit der fehlenden/leeren SortExpression gelöst, möglicherweise kann man auch eine spezielle SortExpression zuweisen (die bleibt komischerweise im ViewState erhalten).
Wizard
Beide Aufrufe schalten den Wizard um, aber Wizard1.ActiveStepIndex liefert danach noch nicht den neuen Wert:
Wizard1.MoveTo(Wizard1.WizardSteps[newIndex]);
Wizard1.ActiveStepIndex = newIndex;
Folgender Code der vom aktuellen Index abhängig ist, muss newIndex verwendet.
CheckBoxField im DetailsView
Bei Windows werden die Controls deaktiviert, wenn eine Row deaktiviert ist, bei Linux nicht. Linux zeigt folgendes Verhalten:
- im DetailsView ein Row auf disabled gesetzt, beim ersten Aufruf wird Checked korrekt gerendert
- bei Postback der sichtbaren View verschwindet Checked (wird vermutlich aus Post überschrieben, Post nicht vorhanden oder anderer Fehler)
- Außerdem wenn bei verdeckter View ein Postback ausgelöst wird (CheckBoxField nicht gerendert) ist ebenso Checked weg. Hier sollte ViewState der CheckBox greifen.
Ein Lösung ist, zusätzlich die Controls zu deaktivieren, wenn eine Row deaktivert wird.
Als eigene Lösung wurde Nsoft.WebControls.CheckBoundField implementiert. Zustand wird im ViewState von CheckBoundField > InitialzeCell gespeichert und mir separater Varianble an ein überschriebenes CheckBox übergeben.
Insgesamt ist das Verhalten schwer nachvollziehbar, die NLog (Nsoft.WebControls.CheckBoundField)
UserInspector -> MembershipForm > Exist (CheckBoxField)
DetailsView DataKeyNames/TextBox
DataKeyNames="UserName" Ein Feld aus DataKeyNames kann nicht gleichzeitig als TemplateField/TextBox verwendet werden. ExtractValues liefert nicht den nhalt der TextBox, bei Windows schon.
Wir arbeiten mit Software von http://www.campus21.de.
Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.