środa, 4 listopada 2009

FormView - inserting obiektów, DropDownList, nullable

Przy wstawianiu obiektów, jeżeli jedno z jego pól może być null-em pojawiają się problemy. W moim wypadku było to index out of... Poszukiwania w Google nic nie dały (żadnych konkretnych odpowiedzi).

Znalezione rozwiązanie polega na dodaniu metody OnItemInserting, która zawiera +/- następujący kod:

protected void AddProductFormView_ItemInserting(object sender, FormViewInsertEventArgs e)
{
    if (e.Values["CalculationMethodId"] == "-1")
        e.Values["CalculationMethodId"] = null;
}

dodaniu do FormView atrybutu oniteminserting="AddProductFormView_ItemInserting" .

DropDownList powinien wyglądać +/- następująco:

<asp:dropdownlist id="ProductCalculationMethodList" runat="server" selectedvalue='<%# Bind("CalculationMethodId") %>' DataSourceID="CalculationMethodsDataSource" DataTextField="Name" DataValueField="Id" AppendDataBoundItems="true" Width="100%"> 
          <asp:listitem selected="True" text="" value="-1"></asp:listitem>
</asp:DropDownList>


Elementy istotne zaznaczone kolorem czerwonym :-)

Brak komentarzy: