web自定义控件 回发问题

yanhua1987 2010-07-17 02:08:17
根据需求,我做了一个文章列表控件,有分页功能。

当我点击自定义控件中下一页(LinkButton)时,aspx页面中需要设计控件中的基本属性。运动到设置第一条属性时提示

“未将对象引用设置到对象的实例。”的错误


ArticleListA1.CompanyID = 8 '在这里出错了。
ArticleListA1.CategoryID = 65
ArticleListA1.PageDatas = 1
ArticleListA1.GoUrl = "DynamicInfo.aspx"


请问是怎么回事?高手指点下。
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanhua1987 2010-07-17
  • 打赏
  • 举报
回复

Imports System
Imports System.Data
Imports System.Data.SqlClient
Partial Class ArticleListA
Inherits System.Web.UI.UserControl
Public strGoUrl As String = Nothing
Private intCompanyID As Int64 = Nothing
Private intPartID As Int64 = Nothing
Private intDataNum As Int32 = Nothing
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack = False Then
If strGoUrl = Nothing OrElse intCompanyID = Nothing OrElse intPartID = Nothing OrElse intDataNum = Nothing Then
lblPrompt.Text = "数据未初始化!"
lbn_FirstPage.Enabled = False
lbn_AgoPage.Enabled = False
lbn_NextPage.Enabled = False
lbn_LastPage.Enabled = False
Exit Sub
End If
Session("ascxNowPageIDA") = 0
Call DataLoad(CType(Session("ascxNowPageIDA"), Int32))
End If
End Sub
'首页
Protected Sub lbn_FirstPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbn_FirstPage.Click
Session("ascxNowPageIDA") = 0
DataLoad(CType(Session("ascxNowPageIDA"), Int32))
End Sub
'上一页
Protected Sub lbn_AgoPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbn_AgoPage.Click
Session("ascxNowPageIDA") -= 1
DataLoad(CType(Session("ascxNowPageIDA"), Int32))
End Sub
'下一页
Protected Sub lbn_NextPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbn_NextPage.Click
Session("ascxNowPageIDA") += 1
DataLoad(CType(Session("ascxNowPageIDA"), Int32))
End Sub
'尾页
Protected Sub lbn_LastPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbn_LastPage.Click
Session("ascxNowPageIDA") = CType(lbl_pagesize.Text, Int32) - 1
DataLoad(CType(Session("ascxNowPageIDA"), Int32))
End Sub
'数据读取方法
Private Sub DataLoad(ByVal intPageNumber As Int32)
Dim ismysql As mySql = New mySql
Dim Pcomid As SqlParameter = New SqlParameter("@comid", intCompanyID)
Dim Pcid As SqlParameter = New SqlParameter("@cid", intPartID)
Dim PParameters As SqlParameter() = {Pcomid, Pcid}
Dim strsql As String = "select ID,title,publishedTime from Article where companyID=@comid and CategoryID=@cid ORDER BY ID DESC"
Dim isset As DataSet = New DataSet
isset = ismysql.ExecutSearchDST(strsql, PParameters)

Dim myPDS As PagedDataSource = New PagedDataSource
myPDS.DataSource = isset.Tables(0).DefaultView
'打开分页
myPDS.AllowPaging = True
'每页显示数据行数
myPDS.PageSize = intDataNum
'数据总行数
lbl_datasize.Text = myPDS.DataSourceCount.ToString
'数据总页数
lbl_pagesize.Text = myPDS.PageCount
'当前显示页
myPDS.CurrentPageIndex = intPageNumber
If myPDS.PageCount + 1 = intPageNumber Then
lbl_nowpage.Text = intPageNumber
Else
lbl_nowpage.Text = myPDS.CurrentPageIndex + 1
End If

'一页时所有按钮不可用
If myPDS.PageCount = 1 OrElse myPDS.PageCount = 0 Then
lbn_FirstPage.Enabled = False
lbn_AgoPage.Enabled = False
lbn_NextPage.Enabled = False
lbn_LastPage.Enabled = False
End If
'当显示第一页时,首页和上一页按钮不可用
If myPDS.IsFirstPage Then
lbn_FirstPage.Enabled = False
lbn_AgoPage.Enabled = False
lbn_NextPage.Enabled = True
lbn_LastPage.Enabled = True
End If
'当显示到最后一页时,下一页和尾页按钮不可用
If myPDS.IsLastPage Then
lbn_FirstPage.Enabled = True
lbn_AgoPage.Enabled = True
lbn_NextPage.Enabled = False
lbn_LastPage.Enabled = False
End If
AllList.DataSource = myPDS
AllList.DataBind()
ismysql.Dispose()
End Sub
''' <summary>
''' 设置跳转的URL
''' </summary>
''' <value>设置跳转的URL</value>
''' <remarks></remarks>
Public WriteOnly Property GoUrl() As String
Set(ByVal value As String)
strGoUrl = value
End Set
End Property
''' <summary>
''' 设置公司ID
''' </summary>
''' <value>设置公司ID</value>
''' <remarks></remarks>
Public WriteOnly Property CompanyID() As Int64
Set(ByVal value As Int64)
intCompanyID = value
End Set
End Property
''' <summary>
''' 设置栏目ID
''' </summary>
''' <value>设置栏目ID</value>
''' <remarks></remarks>
Public WriteOnly Property CategoryID() As Int64
Set(ByVal value As Int64)
intPartID = value
End Set
End Property
''' <summary>
''' 设置每页数据条数
''' </summary>
''' <value>设置每页数据条数</value>
''' <remarks></remarks>
Public WriteOnly Property PageDatas() As Int32
Set(ByVal value As Int32)
intDataNum = value
End Set
End Property
End Class


后台代码
yanhua1987 2010-07-17
  • 打赏
  • 举报
回复

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="ArticleListA.ascx.vb" Inherits="ArticleListA" %>
<%@ outputcache Duration="360" VaryByCustom="browser" VaryByParam="value" %>
<asp:Label ID="lblPrompt" runat="server"></asp:Label>
<div id="wenben">
<ul>
<asp:Repeater ID="AllList" runat="server">
<ItemTemplate>
<li><a href='<%=strGoUrl %>?id=<%# DataBinder.Eval(Container.DataItem, "ID")%>'><%#IIf(DataBinder.Eval(Container.DataItem, "title").ToString.Length > 30, Left(DataBinder.Eval(Container.DataItem, "title"), 30), DataBinder.Eval(Container.DataItem, "title"))%></a>
<span id="time">[<%#Left(DataBinder.Eval(Container.DataItem, "publishedTime"), DataBinder.Eval(Container.DataItem, "publishedTime").ToString.Length - 9)%>]</span>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
<div id="fanye">
[共<asp:Label ID="lbl_datasize" runat="server" ForeColor="Red">0</asp:Label>
条] [页次<asp:Label ID="lbl_nowpage" runat="server" ForeColor="Red">0</asp:Label>
/<asp:Label ID="lbl_pagesize" runat="server" ForeColor="#404040">0</asp:Label>
] [<asp:LinkButton ID="lbn_FirstPage" runat="server">首 页</asp:LinkButton>
] [<asp:LinkButton ID="lbn_AgoPage" runat="server">上一页</asp:LinkButton>
] [<asp:LinkButton ID="lbn_NextPage" runat="server">下一页</asp:LinkButton>
] [<asp:LinkButton ID="lbn_LastPage" runat="server">尾 页</asp:LinkButton>
]
</div>


控件前台代码

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧