用户控件的问题

挨踢直男 2010-08-05 12:30:09
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Area_Class.ascx.cs" Inherits="Inc_Area_Class" %>
<asp:DropDownList ID="Area_ID" runat="server">
</asp:DropDownList>


public partial class Inc_Area_Class : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
string StrSQL = "SELECT * FROM Area_Class ORDER BY Num ASC";
SqlConnection DbConn = new DataBase().Open();
SqlCommand thisCommand = DbConn.CreateCommand();
thisCommand.CommandText = StrSQL;
SqlDataReader thisReader = thisCommand.ExecuteReader();
Area_ID.Items.Add(new ListItem("请选择", ""));
while (thisReader.Read())
{
Area_ID.Items.Add(new ListItem(thisReader["ClassName"].ToString(), thisReader["ID"].ToString()));
}
thisReader.Close();
DbConn.Close();
}
}



我弄了个 用户控件 但在使用的时候 取不到这个 DropDownList 的 Text 属性

有什么办法 取到这个 Text属性
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢直男 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bojiansky 的回复:]

给用户控件设置属性。
[/Quote]

如何设置啊?
挨踢直男 2010-08-05
  • 打赏
  • 举报
回复
用了一楼的方法 还是没跳出 .Text啊
bojiansky 2010-08-05
  • 打赏
  • 举报
回复
给用户控件设置属性。


zhaobinzcb 2010-08-05
  • 打赏
  • 举报
回复
如果你的代码没问题的话

那加一个
Area_ID.DataBind();


<asp:DropDownList ID="Area_ID" runat="server">
</asp:DropDownList>


激活
来自故乡的风 2010-08-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 aspwebchh 的回复:]
回发后 选中状态没法保持啊

ispostback判断 后 也没用啊 dropdownlist 里面的选项变成空的了
[/Quote]

不要着急,一步一步来。

你先新建一个网页,上面拖入一个DropDownList、一个Button和一个TextBox,然后在Button Click里写上让TextBox显示DropDownList的内容,熟悉一下SelectedItem和SelectedValue的不同,再设置一下AutoPostBack试试,再设置if (!Page.IsPostBack)试试----注意Page前边有一个叹号。


等你试完了,对DropDownList熟悉了,再在User Control里练习。
挨踢直男 2010-08-05
  • 打赏
  • 举报
回复
回发后 选中状态没法保持啊

ispostback判断 后 也没用啊 dropdownlist 里面的选项变成空的了

kissesyan 2010-08-05
  • 打赏
  • 举报
回复

public partial class Area_Class : System.Web.UI.UserControl
{
public string Text
{
get { return Area_ID.SelectedItem.Text; }
}
public string Value
{
get { return Area_ID.SelectedValue; }
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string StrSQL = "SELECT * FROM Area_Class ORDER BY Num ASC";
SqlConnection DbConn = new DataBase().Open();
SqlCommand thisCommand = DbConn.CreateCommand();
thisCommand.CommandText = StrSQL;
SqlDataReader thisReader = thisCommand.ExecuteReader();

while (thisReader.Read())
{
Area_ID.Items.Add(new ListItem(thisReader["ClassName"].ToString(), thisReader["ID"].ToString()));
}
thisReader.Close();
DbConn.Close();
}
}
}


把Area_Class.ascx.cs的代码改为这个试一下.
Canny 2010-08-05
  • 打赏
  • 举报
回复
代码好多,看的头疼!
来自故乡的风 2010-08-05
  • 打赏
  • 举报
回复
这是我试验用的User Control Code Behind:

public partial class UserControls_UC_DropDownListl : System.Web.UI.UserControl
{
public string ClassName {
get { return DropDownList1.SelectedItem.ToString(); }
}
public string ClassID {
get { return DropDownList1.SelectedValue; }
}

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DropDownList1.Items.Add(new ListItem("Please Select", ""));
DropDownList1.Items.Add(new ListItem("Class 1", "1"));
DropDownList1.Items.Add(new ListItem("Class 2", "2"));
DropDownList1.Items.Add(new ListItem("Class 3", "3"));
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
来自故乡的风 2010-08-05
  • 打赏
  • 举报
回复
用户控件挺麻烦的,你最好先建一个网页试一下

1、在你的Page_Load事件里加一个判断
if (!Page.IsPostBack)
{

}
把查找数据库、初始化下拉列表的命令都放到这个大括号里。否则每次刷新页面,选择都会丢失。

2、Page_Load事件的上边(外边),也就是在这个类里(与Page_Load事件平级),定义属性

public string ClassName {
get { return DropDownList1.SelectedItem.ToString(); }
}
public string ClassID {
get { return DropDownList1.SelectedValue; }
}
定义成public 的 ClassName和ClassID才能同外部数据交换。
注意把下拉列表名称DropDownList1改为你自己的Area_ID

3、新建一个网页,加入User Control,再往页面上拖两个控件,一个是TextBox,一个是Button,双击Button,在里边写入命令:
this.TextBox1.Text = UC_DropDownListl1.ClassName;
将UC_DropDownListl1改为真实的名称,在此之前最好先Build一下,否则可能找不到User Control。运行一下试试。

62,254

社区成员

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

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

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

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