Не удается удалить строку в GridView, почему? - PullRequest
0 голосов
/ 06 апреля 2011

Доброе утро, пожалуйста, у меня есть зависимый GridView, и я хочу удалить строку, но она не работает.Проблема: метод 'SmazOrdinacniDobu' (для удаления) имеет тип параметра OrdinacniDoba, но этот параметр пуст ... Почему?:( (но обновление работает нормально ...)

<asp:ObjectDataSource ID="odsOrdinacniHodiny" runat="server" 
    DataObjectTypeName="Praktik.DB.OrdinacniDoby.OrdinacniDoba" 
    DeleteMethod="SmazOrdinacniDobu" InsertMethod="VytvorNovou" 
    SelectMethod="VratVseOrdinaci" 
    TypeName="Praktik.DB.OrdinacniDoby.OrdinacniDoby" 
    UpdateMethod="UpravOrdinacniDobu">
<SelectParameters>
    <asp:ControlParameter ControlID="gwOrdinace" DefaultValue="0" Name="id" 
        PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="gwOrdinacniDoba" runat="server" AutoGenerateColumns="False" 
    EnableModelValidation="True" 
    onrowupdating="gwOrdinacniDoba_RowUpdating" 
    DataSourceID="odsOrdinacniHodiny" AutoGenerateDeleteButton="True" 
    EnableViewState="False">
<Columns>
    <asp:CommandField ButtonType="Image" 
        CancelImageUrl="~/App_Themes/ZdravotnickaZarizeni/design/cancel.png" 
        EditImageUrl="~/App_Themes/ZdravotnickaZarizeni/design/pencil.png" 
        ShowEditButton="True" 
        UpdateImageUrl="~/App_Themes/ZdravotnickaZarizeni/design/check.png" />
    <asp:BoundField DataField="IDOrdinacniDoby" HeaderText="ID Ordinační doby" />
    <asp:BoundField DataField="IDOrdinace" HeaderText="ID Ordinace" />
    <asp:BoundField DataField="PlatnostOd" HeaderText="Platnost od data" DataFormatString="{0:D}" />
    <asp:BoundField DataField="PlatnostDo" HeaderText="Platnost do data" DataFormatString="{0:D}" />
    <asp:BoundField DataField="Den" HeaderText="Den v týdnu" />
    <asp:BoundField DataField="RezervaceOd" HeaderText="Rezervace od" />
    <asp:BoundField DataField="RezervaceDo" HeaderText="Rezervace do" />
    <asp:BoundField DataField="OpakovatPoTydnech" HeaderText="Opakovat po týdnech" />
    <asp:CheckBoxField DataField="Pritomen" HeaderText="Přítomen?" />
    <asp:CommandField ButtonType="Image" 
        DeleteImageUrl="~/App_Themes/ZdravotnickaZarizeni/design/non.png" 
        ShowDeleteButton="True" />
</Columns>
</asp:GridView>

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Свяжите первичный ключ вашего источника данных в виде сетки с атрибутом DatakeyNames. В строке команды или событии удаления строки найдите этот ключ и удалите строку.

0 голосов
/ 06 апреля 2011

Прежде всего, вы не предоставили DataKeyNames для своего gridview. Во-вторых, вы не предоставили Delete method parameter

 <DeleteParameters>
     <asp:Parameter Name="ParameterName" Type="Int32" />
 </DeleteParameters>
...