PagedControl.ItemWeight Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the approximate weight of a single item in the control. This API is obsolete. For information about how to develop ASP.NET mobile applications, see Mobile Apps & Sites with ASP.NET.
protected:
virtual property int ItemWeight { int get(); };
protected virtual int ItemWeight { get; }
member this.ItemWeight : int
Protected Overridable ReadOnly Property ItemWeight As Integer
Property Value
The approximate weight of a single item in the control.
Examples
The following code example creates and uses a custom list control. The example demonstrates how to override the ItemWeight property of a List class to specify a new control weight.
<%@ Page Language="C#"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<%@ Import Namespace="System.Security.Permissions" %>
<script runat="server">
// A custom list control for illustration
[AspNetHostingPermission(SecurityAction.Demand,
Level=AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level=AspNetHostingPermissionLevel.Minimal)]
public class ListControl : List
{
public ListControl()
: base()
{}
// Set a weight for the items
protected override int ItemWeight
{
get { return 150; }
}
}
ListControl List1;
private void Page_Load(object sender,
System.EventArgs e)
{
// Instantiate the custom control
List1 = new ListControl();
List1.ItemCount = 20;
List1.ID = "List1";
List1.LoadItems += this.LoadNow;
Form1.Controls.Add(List1);
Form1.ControlToPaginate = List1;
}
// Called by the List whenever it needs new items
private void LoadNow(object sender,
LoadItemsEventArgs e)
{
int j = e.ItemIndex;
// You have to estimate the item size
int estItemSize = 110;
// Get the optimum page weight for the device
int wt =
Form1.Adapter.Page.Adapter.OptimumPageWeight;
// Get the number of items per page
List1.ItemsPerPage = wt / estItemSize;
// Build a section of the array
ArrayList arr= new ArrayList();
for (int i = 1; i <= e.ItemCount; i++)
{
int v = i + j;
arr.Add((v.ToString() + " List Item"));
}
// Bind the array to the list
List1.DataSource = arr;
List1.DataBind();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:Form id="Form1" runat="server"
Paginate="true">
<mobile:TextView ID="TextView1"
Runat="server" />
</mobile:Form>
</body>
</html>
<%@ Page Language="VB"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<%@ Import Namespace="System.Security.Permissions" %>
<script runat="server">
' A custom list control for illustration
< _
AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal), _
AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class ListControl
Inherits List
Public Sub New()
MyBase.New()
End Sub
' Set a weight for the items
Protected Overrides ReadOnly _
Property ItemWeight() As Integer
Get
Return 150
End Get
End Property
End Class
Dim WithEvents List1 As ListControl
Private Sub Page_Load(ByVal sender As Object, _
ByVal e As EventArgs)
' Instantiate the custom control
List1 = New ListControl()
List1.ItemCount = 20
List1.ID = "List1"
Form1.Controls.Add(List1)
Form1.ControlToPaginate = List1
End Sub
' Called by the List whenever it needs new items
Private Sub LoadNow(ByVal sender As Object, _
ByVal e As LoadItemsEventArgs) _
Handles List1.LoadItems
Dim j As Integer = e.ItemIndex
' You have to estimate the item size
Dim estItemSize As Integer = 110
' Get the optimum page weight for the device
Dim wt As Integer = _
Form1.Adapter.Page.Adapter.OptimumPageWeight
' Get the number of items per page
List1.ItemsPerPage = wt / estItemSize
' Build a section of the array
Dim arr As New ArrayList()
For i As Integer = 1 To e.ItemCount
Dim v As Integer = i + j
arr.Add((v.ToString() + " List Item"))
Next
' Bind the array to the list
List1.DataSource = arr
List1.DataBind()
End Sub
</script>
<html xmlns="http:'www.w3.org/1999/xhtml" >
<body>
<mobile:Form id="Form1" runat="server"
Paginate="true">
<mobile:TextView ID="TextView1"
Runat="server" />
</mobile:Form>
</body>
</html>
Remarks
A value of -1 indicates that the default weight for the element must be used. The inheriting class must override this property. For further information about overriding this property, see Pagination Support.