2011-12-26 23 views
0

これは簡単ですが、間違っていることはわかりません。誰でも問題を見つけることができますか?削除はグリッドビューでは機能しません。 deleteイベントは発生しますが、データは取得されません。ここにコードがあります。グリッドビューのイベントを削除しないイベントを削除します。

<asp:ObjectDataSource ID="odsAdministratiors" runat="server" 
    DeleteMethod="RemoveUsersFromRoles" InsertMethod="AddUserToRolesGroup" 
    OldValuesParameterFormatString="{0}" SelectMethod="GetAdmins" 
    TypeName="ManageAdminRoles" UpdateMethod="AddUserToRolesGroup" > 
    <DeleteParameters> 
     <asp:Parameter Name="firstname" Type="String" /> 
     <asp:Parameter Name="lastname" Type="String" /> 
     <asp:Parameter Name="Email" Type="String" /> 
     <asp:Parameter Name="altemail" Type="String" /> 
     <asp:Parameter Name="UserId" DbType="Guid" /> 
     <asp:Parameter Name="RoleId" DbType="Guid" /> 
     <asp:Parameter Name="RoleName" Type="String" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="firstname" Type="String" /> 
     <asp:Parameter Name="lastname" Type="String" /> 
     <asp:Parameter Name="Email" Type="String" /> 
     <asp:Parameter Name="altemail" Type="String" /> 
     <asp:Parameter Name="UserId" DbType="Guid" /> 
     <asp:Parameter Name="RoleId" DbType="Guid" /> 
     <asp:Parameter Name="RoleName" Type="String" /> 
    </InsertParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="firstname" Type="String" /> 
     <asp:Parameter Name="lastname" Type="String" /> 
     <asp:Parameter Name="Email" Type="String" /> 
     <asp:Parameter Name="altemail" Type="String" /> 
     <asp:Parameter DbType="Guid" Name="UserId" /> 
     <asp:Parameter DbType="Guid" Name="RoleId" /> 
     <asp:Parameter Name="RoleName" Type="String" /> 
    </UpdateParameters> 
</asp:ObjectDataSource> 

そしてBLL方法:あなたのHELLPため

private Get_Site_Admins_TableAdapter _Adapter = null; 
protected Get_Site_Admins_TableAdapter Adapter 
{ 
    get 
    { 
     if (_Adapter == null) 
      _Adapter = new Get_Site_Admins_TableAdapter(); 
     return _Adapter; 
    } 
} 

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] 
public dsManageAdminRoles.Get_Site_AdminsDataTable GetAdmins()  
{ 
    try 
    { 
     return Adapter.GetAdminUsers(); 
    } 
    catch (Exception ex) { throw ex; } 
} 


[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] 
public bool RemoveUsersFromRoles(string firstname,string lastname,string Email,string altemail,Guid UserId,Guid RoleId,string RoleName) 
{ 
    int rowsAffected = Adapter.Delete(firstname,lastname,Email,altemail,UserId,RoleId,RoleName); 

    try 
    { 
     return rowsAffected == 1; 
    } 
    catch (Exception ex) { throw ex; } 
} 

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)] 
public bool AddUserToRolesGroup(string firstname, string lastname, string Email, string altemail, Guid UserId, Guid RoleId, string RoleName) 
{ 
    int rowsAffected = Adapter.Insert(firstname, lastname, Email, altemail, UserId, RoleId, RoleName); 

    try 
    { 
     return rowsAffected == 1; 
    } 
    catch (Exception ex) { throw ex; } 
} 

おかげでここ

<asp:GridView ID="gvAdmins" runat="server" DataKeyField="UserId" Width="200px" DataSourceID="odsAdministratiors" 
    AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" PageSize="5" GridLines="None" 
    CellPadding="2" RowStyle-CssClass="gridview" AlternatingRowStyle-CssClass="altbgcolor" 
    OnRowDeleting="gvAdmins_OnDeleting" > 
    <Columns> 
     <asp:BoundField DataField="UserId" HeaderText="UserId" ReadOnly="True" Visible="false" /> 
     <asp:BoundField DataField="RoleId" HeaderText="RoleId" ReadOnly="True" Visible="false" />             
     <asp:BoundField DataField="Email" HeaderText="Email" ReadOnly="True" Visible="false" />             
     <asp:BoundField DataField="altemail" HeaderText="altemail" ReadOnly="True" Visible="false" /> 
     <asp:TemplateField > 
      <ItemTemplate> 
      <asp:Label ID="lblFnane" runat="server" Text='<%# Bind("firstname") %>' /> 
      <asp:Label ID="lblLname" runat="server" Text='<%# Bind("lastname")%>' /> 
      </ItemTemplate> 
      <AlternatingItemTemplate>             
      <asp:Label ID="lblFnane" runat="server" Text='<%# Bind("firstname") %>' /> 
      <asp:Label ID="lblLname" runat="server" Text='<%# Bind("lastname")%>' /> 
      </AlternatingItemTemplate> 
     </asp:TemplateField> 
     <asp:CommandField ShowDeleteButton="true" /> 
    </Columns> 
</asp:GridView> 

はODSです。飛び出している

Risho

+0

あなたがデータソースに削除イベントを追加し、deleteparametersが何であるかを見ることができますか? –

+0

@Paul:削除イベントメソッドはRemoveUsersFromRolesと呼ばれます。デバッグモードでは起動しますが、変数はnullです。 – Risho

+0

私も訂正をしましたが、 ".Update"と書かれていましたが、Deleteに修正されました:[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete、true)] – Risho

答えて

0

まず最初は、あなたのGridViewの列のいくつかは、=「false」と表示されているという事実と、その列からデータバインディングを削除するということです。可視性をtrueに変更し、それが役立つかどうかを確認してテストします。スタイル "display:none;"を使用することができます。列を非表示にするにはデータをバインドします。

第2に、コードに「gvAdmins_OnDeleting」イベントが表示されません。それは存在しますか?

HTH

デイブ

関連する問題