首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
ASP.NET
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
[向
saucer
提问]
关于用户控件的
[已结贴,结贴人:ljqingas]
加为好友
发送私信
在线聊天
ljqingas
佳庆
等级:
可用分等级:
乞丐
总技术分:
335
总技术分排名:
43814
揭贴率:
100.00%
发表于:
2008-08-20 15:11:41
楼主
网站中老用到GridView,于是就做了一个GridView的用户控件,取消了它的自动列,动态添加绑定列(DataBound):
用户控件的名称是:UserDataSet.ascx;代码如下:
public struct MyStruct
{
/// <summary>
/// 绑定列的数据源列名
/// </summary>
public string BoundFieldName;
/// <summary>
/// 绑定的列名
/// </summary>
public string BoundFieldText;
}
public partial class UserControl_UserDataSet : System.Web.UI.UserControl
{
/// <summary>
/// GridView的数据源DataSet
/// </summary>
public DataSet myDataSet;
public MyStruct[] myStr = new MyStruct[] { };
protected void Page_Load(object sender, EventArgs e)
{
GridView1.AutoGenerateColumns = false;
BoundField[] myField = new BoundField[myStr.Length];
for (int i = 0; i < myStr.Length; i++)
{
//添加BoundField所需要的数据;
myField[i] = new BoundField();
myField[i].HeaderText = myStr[i].BoundFieldText;
myField[i].DataField = myStr[i].BoundFieldName;
GridView1.Columns.Add(myField[i]);
}
GridView1.DataSource = myDataSet;
GridView1.DataBind();
}
别的引用页面的实现功能是:添加部门名称到数据库,并用GridView显示出来,代码:
public partial class Admini_AddDepartment : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text != "")
{
if (Sql.CheckSame("Department", "DepartmentName", TextBox1.Text))
{
Bind();
Sql.Warning("部门" + TextBox1.Text + "已经存在");
}
else
{
if (Sql.ExecutePro("InsertDepartment", new SqlParameter("@Departname", TextBox1.Text)))
{
Bind();
Sql.Warning("部门" + TextBox1.Text + "添加成功");
}
else
{
Sql.Warning("部门" + TextBox1.Text + "添加失败");
}
}
}
else
{
Bind();
Sql.Warning("请输入部门名称");
}
}
/// <summary>
/// GridView的数据源的绑定,添加BOUNDFIELD所需要的数据;
/// </summary>
这是应用:
public void Bind()
{
MyStruct[] _struct = new MyStruct[2];
DataSet mySet = new DataSet();
_struct[0].BoundFieldName = "DepartmentName";
_struct[0].BoundFieldText = "部门名称";
_struct[1].BoundFieldName = "ID";
_struct[1].BoundFieldText = "部门编号";
Control uc2 = LoadControl("~/UserControl/UserDataSet.ascx");
((UserControl_UserDataSet)uc2).myStr = _struct;
((UserControl_UserDataSet)uc2).myDataSet = Sql.GetDataSet("select * from Department", mySet);
Page.Form.Controls.Add(uc2);
}
}
但是点击“确定”按钮添加之后,GridView出来两个,点击按钮就在出来一个GridView,我想是点击按钮就添加一个GridView,这怎么处理呢啊?
问题点数:
100
回复次数:
6
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ljqingas
佳庆
等级:
可用分等级:
乞丐
总技术分:
335
总技术分排名:
43814
发表于:
2008-08-20 15:12:59
1
楼 得分:
0
我在昨天也发问了啊:160分,希望大家能帮我解决下啊,到时把分散给大家啊!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ojekleen
三尾
等级:
可用分等级:
乞丐
总技术分:
9853
总技术分排名:
2021
发表于:
2008-08-20 15:22:31
2
楼 得分:
40
Page.Form.Controls.Add(uc2);
你点一下就bind一次,当然他要添加了解.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ljqingas
佳庆
等级:
可用分等级:
乞丐
总技术分:
335
总技术分排名:
43814
发表于:
2008-08-20 15:30:26
3
楼 得分:
0
哪有什么方法实现只添加一次啊?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ljqingas
佳庆
等级:
可用分等级:
乞丐
总技术分:
335
总技术分排名:
43814
发表于:
2008-08-20 16:22:07
4
楼 得分:
0
还是自己顶一下吧!!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lovehongyun
潇湘夜雨
等级:
可用分等级:
富农
总技术分:
17582
总技术分排名:
871
发表于:
2008-08-22 10:32:05
5
楼 得分:
30
你按钮里的Bind()全去掉
把if (!IsPostBack) 也去掉
让他每次页面加载时add
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhangxuyu1118
zxy
等级:
可用分等级:
中农
总技术分:
1980
总技术分排名:
11148
发表于:
2008-08-22 10:49:20
6
楼 得分:
30
在页面加载时add,
不能:Page.Form.Controls.Add(uc2);
你点一下就bind一次
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友