タイトルとして、ページング wcf はデータソースとしてどのように機能しますか? Dataservicequery には setentitysetpagesize があり、select のレコードが制限されていました。この場合、データソースとしてどのように機能する必要がありますか。Web コントロールにバインドすると、すべてのレコードをクエリし、ページングにもページングがあると、合計レコードが正しくなくなります。私はこれで期限が過ぎて気が狂いそうになりました。
質問する
1688 次
1 に答える
2
ジェネリック クラスを戻り値の型として使用し、そのクラスをシリアライズ可能にしてから、フロント エンドでオブジェクト データソースを使用する必要があります。私はそれがうまくいくと確信しています。
Like: WCF サービスとしての Bizz レイヤー
public List<Employee> GetEmployees()
{
try
{
List<Employee> emp = new List<Employee>();
emp.Add(new Employee { Code = 1, DepartMentCode = 2, FatherName = "FatherName", ManagerCode = 2, Name = "Bilal",ManagerName="mnagername", PhoneNumber = "24421" });
return emp;
}
catch (TimeoutException te)
{
throw te;
}
catch (FaultException fe)
{
throw new FaultException();
}
catch (CommunicationException ce)
{
throw new CommunicationException();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (client != null)
{
client.Close();
}
}
}
//エンティティ クラス
[Serializable()]
[DataContract()]
public class Employee
{
[DataMember]
public int Code { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string FatherName { get; set; }
[DataMember]
public string PhoneNumber { get; set; }
[DataMember]
public int DepartMentCode { get; set; }
[DataMember]
public int ManagerCode { get; set; }
[DataMember]
public string ManagerName { get; set; }
}
//これはページ レベルのコードです。ご理解いただければ幸いです。
<div class="EmployeeMain">
<div class="link" onclick="Show_Popup();">
New Employee</div>
<fieldset>
<legend>Employees Details </legend>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ODSEmployee"
OnRowEditing="GridView1_RowEditing" BackColor="LightGoldenrodYellow" BorderColor="Tan"
BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" Width="100%"
AllowPaging="True">
<AlternatingRowStyle BackColor="PaleGoldenrod" />
<Columns>
<asp:BoundField FooterText="EmployeeID" DataField="Code" HeaderText="EmployeeID" />
<asp:BoundField FooterText="Name" DataField="Name" HeaderText="Name" />
<asp:BoundField FooterText="Father Name" DataField="FatherName" HeaderText="Father Name" />
<asp:BoundField FooterText="Phone Number" DataField="PhoneNumber" HeaderText="Phone Number" />
<asp:TemplateField FooterText="manager" HeaderText="Manager">
<ItemTemplate>
<asp:Label ID="lblMangerName" Text='<%# Eval("ManagerName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlManager" runat="server" DataSourceID="ManagersDataSource"
DataTextField="ManagerName" DataValueField="ManagerCode" SelectedValue='<%# Bind("ManagerCode") %>'
AppendDataBoundItems="True">
</asp:DropDownList>
<asp:ObjectDataSource runat="server" ID="ManagersDataSource" SelectMethod="GetManagers"
TypeName="mytest.WebApplication.BizzLayerService.EmployeeClient"></asp:ObjectDataSource>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" />
</Columns>
<FooterStyle BackColor="Tan" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<SortedAscendingCellStyle BackColor="#FAFAE7" />
<SortedAscendingHeaderStyle BackColor="#DAC09E" />
<SortedDescendingCellStyle BackColor="#E1DB9C" />
<SortedDescendingHeaderStyle BackColor="#C2A47B" />
</asp:GridView>
<asp:ObjectDataSource ID="ODSEmployee" runat="server" DeleteMethod="DeleteEmployeeRecord"
InsertMethod="SaveEmployeeRecord" SelectMethod="GetEmployees" TypeName="mytest.WebApplication.BizzLayerService.EmployeeClient"
UpdateMethod="UpdateEmployeeRecord">
<DeleteParameters>
<asp:Parameter Name="empCode" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="empCode" Type="Int32" />
<asp:Parameter Name="empName" Type="String" />
<asp:Parameter Name="empFatherName" Type="String" />
<asp:Parameter Name="empPhoneNumber" Type="String" />
<asp:Parameter Name="empAddress" Type="String" />
<asp:Parameter Name="empDeparmentCode" Type="Int32" />
<asp:Parameter Name="EmpManagerCode" Type="Int32" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="empCode" Type="Int32" />
<asp:Parameter Name="empName" Type="String" />
<asp:Parameter Name="empFatherName" Type="String" />
<asp:Parameter Name="empPhoneNumber" Type="String" />
<asp:Parameter Name="empAddress" Type="String" />
<asp:Parameter Name="empDeparmentCode" Type="Int32" />
<asp:Parameter Name="EmpManagerCode" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
<br />
</fieldset>
</div>
<div class="newAcount">
<table>
<tr>
<td colspan="2">
<h1>New Employee Record</h1>
</td>
</tr>
<tr>
<td>
Name
</td>
<td>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Father Name
</td>
<td>
<asp:TextBox ID="txtFathername" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Phone Number
</td>
<td>
<asp:TextBox ID="txtPhonuNumber" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Address
</td>
<td>
<asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Department code
</td>
<td>
<asp:DropDownList ID="ddlDeptCode" runat="server">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
Manager Code
</td>
<td>
<asp:DropDownList ID="ddlManagerName" runat="server">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnSaveRecord" runat="server" Text="Button" />
</td>
<td>
<input id="Button1" type="button" value="close" onclick="Close_Popup()" />
</td>
</tr>
</table>
</div>
于 2012-04-24T05:00:57.737 に答える