webForumDet fria alternativet

Detailsview och insert med sessionparameter

1 svar · 354 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1

Tja! Har en tabell i en databas med 3 attribut och en klass som håller han dom dem samt ett BLL kopplat till en ObjectDataSource.

public class Item
{
		private int _itemID;
		private int _systemID;
		private string _name;
...properties..

}

Och så har jag en Detailsview kopplat till där jag vill lägga till nya poster. Jag visar endast fältet name och har SystemID sparat i en session-variabel.

Så här ser koden för ObjectDataSource ut:

<asp:ObjectDataSource ID="dsItems" runat="server" DataObjectTypeName="Item"
                DeleteMethod="Delete" InsertMethod="Insert" SelectMethod="GetItemsBySystemId"
                TypeName="BLL.Item" UpdateMethod="Update">
                <SelectParameters>
                    <asp:SessionParameter Name="systemID" SessionField="SystemID" Type="Int32" />
                </SelectParameters>
                <InsertParameters>
                    <asp:SessionParameter Name="SystemID" SessionField="SystemID" />
                </InsertParameters>
            </asp:ObjectDataSource>

SessionID:t blir alltid 0. Är det någon grej man måste slå på i ObjecDataSource för att den ska bry sig om SessionParameter?

PMedlem sedan jan. 20012 204 inlägg
#2

Det löste sig väl hyffsat tillslut. Tydligen om DataObjectTypeName är satt så struntar den i alla parametrar. Lösning:

    protected void dsDepartments_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        EmployeeInfo ee = (EmployeeInfo)e.InputParameters[0];
        ee.DepartmentID = 1;
    }

Med lite andra namn...

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)