private string tableid;
public string TableID
{
get
{
return tableid;
}
set
{
tableid=value;
}
                   }

解决方案 »

  1.   

    什么意思啊
    不是已经定义了吗?
    如果需要逻辑控制就在set和get块中加上!如果属性是在其他页面用就public否则private .
      

  2.   

    好的,就给你个例子吧,,。以下是TestUserControl.ascx文件代码如下:<%@ Control Language="vb" AutoEventWireup="false" Codebehind="TestUserControl.ascx.vb" Inherits="WebApplication3.TestUserControl" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
    <FONT face="宋体">
    <P align="center"><asp:label id="Label1" runat="server" Width="65px">用户名:</asp:label><asp:textbox id="TxtUserName" runat="server"></asp:textbox><BR>
    <asp:label id="Label2" runat="server">密 码:</asp:label><asp:textbox id="TxtUserPass" runat="server"></asp:textbox><BR>
    <asp:DropDownList id="DropDownList1" Width="92px" runat="server">
    <asp:ListItem Value="SuperAdmin" Selected="True">超级管理员</asp:ListItem>
    <asp:ListItem Value="UserAdmin">普通管理员</asp:ListItem>
    </asp:DropDownList><BR>
    <asp:Button id="Button1" Width="73px" runat="server" Text="确定" Height="29px"></asp:Button></P>
    </FONT>
    =========================================以下是:TestUserControl.ascx.vb代码如下:Imports System
    Imports System.Web
    Imports System.Web.ui    Public Class TestUserControl
            Inherits System.Web.UI.UserControl#Region " Web 窗体设计器生成的代码 "        '该调用是 Web 窗体设计器所必需的。
            <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
            Protected WithEvents Label1 As System.Web.UI.WebControls.Label
            Protected WithEvents TxtUserName As System.Web.UI.WebControls.TextBox
            Protected WithEvents Label2 As System.Web.UI.WebControls.Label
            Protected WithEvents TxtUserPass As System.Web.UI.WebControls.TextBox
        Protected WithEvents Button1 As System.Web.UI.WebControls.Button
        Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList        '注意: 以下占位符声明是 Web 窗体设计器所必需的。
            '不要删除或移动它。
            Private designerPlaceholderDeclaration As System.Object        Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
                'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
                '不要使用代码编辑器修改它。
                InitializeComponent()
            End Sub#End Region        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                '在此处放置初始化页的用户代码
            End Sub        Public Property UserName() As String
                Get
                    Return TxtUserName.Text
                End Get
                Set(ByVal Value As String)
                    TxtUserName.Text = Value
                End Set
            End Property        Public Property UserPass() As String
                Get
                    Return TxtUserPass.Text
                End Get
                Set(ByVal Value As String)
                    TxtUserPass.Text = Value
                End Set
        End Property    Public Property Flag() As String
            Get
                Return DropDownList1.SelectedItem.Text
            End Get
            Set(ByVal Value As String)
                DropDownList1.SelectedItem.Text = Value
            End Set
        End Property    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Response.Redirect("DownLoad.aspx")
            If TxtUserName.Text = "" Then
                Response.Write("<script>alert('错了');</script>")
            Else
                'Response.Write("<script>alert('对了" & TxtUserName.Text & "');</script>")
            End If
            Response.Write("<script>alert('你选择的是 " & DropDownList1.SelectedItem.Text & "');</script>")
        End Sub
    End Class
      

  3.   

    上面那两个是简单的用户控件,下面给你调用这个用户控件的代码:以下是TestUserLoin.aspx代码如下:<%@ Page Language="vb" AutoEventWireup="false" Codebehind="TestUserLogin.aspx.vb" Inherits="WebApplication3.TestUserLogin"%>
    <%@ Register TagPrefix="UserLogin" TagName="MyLogin" Src="TestUserControl.ascx" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>TestUserLogin</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout" topmargin="80">
    <form id="Form1" method="post" runat="server">
    <table id="table1" align="center" width="80%">
    <tr>
    <td align="center">
    <UserLogin:MyLogin id="logins1" runat="server"></UserLogin:MyLogin>
    </td>
    </tr>
    <tr>
    <td align="center"><asp:Button ID="btn1" Runat="server" Text=" 登 陆 "></asp:Button></td>
    </tr>
    <tr>
    <td align="center">
    <asp:Label ID="lblmsg" Runat="server" ForeColor="#ff0000"></asp:Label></td>
    </tr>
    </table>
    </form>
    </body>
    </HTML>
    ================================以下是TestUserLogin.aspx.vb代码如下:Imports System
    Imports System.Web
    Imports System.Web.UIPublic Class TestUserLogin
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents btn1 As System.Web.UI.WebControls.Button
        Protected WithEvents lblmsg As System.Web.UI.WebControls.Label    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
        End Sub    Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
            lblmsg.Text = CType(Me.FindControl("logins1"), TestUserControl).UserName
            lblmsg.Text &= "<br>" & CType(Me.FindControl("logins1"), TestUserControl).UserPass
            lblmsg.Text &= "<br>" & CType(Me.FindControl("logins1"), TestUserControl).Flag
        End Sub
    End Class
      

  4.   

    给你三个例子吧。第一个,bool类型属性,默认值为true,viewstate保存状态
    [DefaultValue(true),
    Bindable(true),
    PersistenceMode(PersistenceMode.Attribute),
    Category("SpiderSurfGrid")]
    public bool ssgMode
    {
      get
      {
        object b = ViewState["ssgMode"];
        bool blSpiderSurfGridMode = ((b == null) ? true : (bool)b);
        ViewState["ssgMode"] = blSpiderSurfGridMode;
        return blSpiderSurfGridMode;
      }  set
      {        
        ViewState["ssgMode"] = value;
      }
    }
      

  5.   

    第二个,可以用datatable/dataset或者dataviewmanager赋值的属性,注意DvmSource是内部属性,设计时不可见private DataViewManager dvmSource;private DataViewManager DvmSource
    {
      get
      {
        return dvmSource;
      }  set
      {
        dvmSource = value;
      }
    }[
    Bindable(true),
    PersistenceMode(PersistenceMode.Attribute),
    Category("SpiderSurfGrid")]
    public object ssgDataSource
    {
      get
      {
        return dvmSource;
      }  set
      {
        if(value is DataViewManager)
          dvmSource = (DataViewManager)value;
        else if(value is DataSet)
        {
          DataViewManager dvm = new DataViewManager((value as DataSet));
          dvmSource = dvm;
        }
        else if(value is DataTable)
        {
          DataSet ds = new DataSet();
          ds.Tables.Add((value as DataTable));
          DataViewManager dvm = new DataViewManager(ds);
          dvmSource = dvm;
        }
      }
    }
      

  6.   

    第3个,枚举类型属性public enum SpiderSurfGridExportingMode
    {
      WebPage = 1,
      Attachment = 0
    }
    ...
    private SpiderSurfGridExportingMode enuSsgemExportingMode;
    [Bindable(true),
    Category("SpiderSurfGrid"),
    DefaultValue(SpiderSurfGridExportingMode.Attachment)]
    public SpiderSurfGridExportingMode ssgExportingMode
    {
      get
      {
        return enuSsgemExportingMode;
      }  set
      {
        enuSsgemExportingMode = value;
      }
    }
      

  7.   

    楼猪 可能是不明白为什么要用2个东西来表示一个属性是么?
    这用法有多种 
    1。“别和陌生人说话”的意思,对外都用一个变量来表示
    2。还有就是,一些属性可能在对象初始化时不要求获取值,知道有人调用这个值时他才在 get中去获取值并且复制到私有变量,这样可以提高效率,减去不必要的支出
    private string tableid;
    public string TableID
    {
    get
    {
                                      if(tableid!=null)
    return tableid;
                                      else
                                        {taleid=getValue();return tableid;                                     }
    }
    set
    {
    tableid=value;
    }
                       }3。控制权限
    通过get  和set 控制 读 写权限
      

  8.   

    例子上面的朋友已经举了很多了,我就不多说了
    我就说一下怎么样给控件属性赋值吧
    ((用户控件命名空间)this.FindControl("控件id")).属性="";
    例如:
    ((ServerFlat.UserCtrl.DataGridView)this.FindControl("DataGridViewNews")).ImgUrl="../Images/kjxw.gif";
    ServerFlat.UserCtrl.DataGridView表示在ServerFlat这个解决方案中的UserCtrl中的DataGridView这个用户控件。DataGridViewNews表示DataGridView在新页面中的id。