小山
付出最大努力,追求最高成就,享受最佳生活,收获无悔人生
博客园
首页
新随笔
联系
订阅
管理
200 Posts :: 1 Stories :: 1253 Comments :: 76 Trackbacks
公告
我的主页
个人资料
我的闪存
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的文章
我的参与
我的新闻
最新评论
我的标签
我参与的团队
Ajax&Atlas技术团队(0/0)
成都.NET俱乐部(0/0)
随笔分类
(218)
ADO.NET(1)
Ajax&Altas(8)
API(2)
ASP.NET(14)
ASP.NET2.0(3)
Blog(1)
C#(9)
DataGrid(19)
DropDownList(9)
English Study(1)
HTC(1)
Html/css(2)
Infragistics(1)
JavaScript(14)
Menu(2)
Oracle(1)
SEO|搜索引擎优化 (4)
Sql Server(7)
TreeView(2)
UML(12)
VS.NET(3)
VSS(2)
Web Services(3)
Winform
XmlHttp(4)
案例分析(1)
创业(6)
第三方控件(3)
非技术区(1)
经典算法(3)
精彩网址(13)
汽车保险(2)
软件工程(2)
设计与模式(23)
水晶报表
网站推广(6)
我的生活(4)
系统分析/设计(3)
项目管理(17)
休闲娱乐(1)
学习资料(7)
正则表达式(1)
随笔档案
(200)
2009年5月 (1)
2009年4月 (1)
2009年2月 (1)
2008年11月 (1)
2008年10月 (1)
2008年9月 (1)
2008年8月 (1)
2008年7月 (3)
2008年5月 (1)
2007年11月 (2)
2007年10月 (1)
2007年8月 (1)
2007年3月 (1)
2006年9月 (2)
2006年8月 (1)
2006年7月 (2)
2006年6月 (1)
2006年5月 (5)
2006年4月 (4)
2006年3月 (5)
2006年2月 (3)
2006年1月 (10)
2005年12月 (23)
2005年11月 (29)
2005年10月 (99)
友情链接
43997k7k在线小游戏
折扣网
最新随笔
1. IT项目管理学习笔记纲要
2. 如何组织高效的项目会议
3. 项目管理的20条锦囊妙计
4. SEO|搜索引擎优化(如何让你的网站排名靠前)
5. Ajax实现无刷新三联动下拉框
积分与排名
积分 - 619000
排名 - 54
最新评论
1. Re:ASP.NET2.0 TreeView
不错
--长河落日
2. Re:对web.config进行新增修改删除读取操作
modifyElement方法和removeElement方法一模一样啊 是不是写错了?
--jes
3. Re:网站掉进沙盒,折扣网给你分析前后原因
现在貌似无所谓了,只要坚持更新,做好sitemap。
--超SEO
4. Re:Alexa世界排名原理,为网站赢得好排名
有人利用Alexa作弊!但是是一个很重要的参考工具!
--超SEO
5. Re:SEO|搜索引擎优化(如何让你的网站排名靠前)
老外很经典一篇文章!
--超SEO
6. Re:职责链模式(Chain of Responsibility Pattern)
@cocoapple 你爱看就看。最讨厌并痛恨你这种人。 1 退10000步来说:你抄个看看。是不是显着你有本事 2 你现在所有知识,就算你会爬会跳会叫妈会哭会笑会打滚也是抄的(可能你会做湿不是抄的)...
--梅桦
7. Re:Ajax实现无刷新三联动下拉框
想成为有钱人,首先要有赚钱的愿望,才更容易实现。在财富的累积过程中,不要嫌钱少,先从小数目开始,总有一天能赚得更多。 除了财富的七大秘诀外,巴比伦人的五大黄金定律也是永恒的真理,都是用非常简单的...
--wenli
8. Re:Ajax实现无刷新三联动下拉框
vs2003如何用ajax
--pl_1069
9. Re:Sales案例分析
[quote]张磊.NET:“在一个系统没有成型前,客户是不会花太多精力去看”,“必须要时刻准备沟通,因为客户的想法在变”——tototo说的很对[/quote] 严重同意。。。。
--Nina
10. Re:DataGrid/DataSet导出到excle和csv文件
法文乱码
--KiNg.JiOnG
阅读排行榜
1. Ajax实现无刷新三联动下拉框(59323)
2. 功能齐全的DataGrid(29496)
3. XmlHttp实现无刷新三联动下拉框(20256)
4. 下载网址集锦(16740)
5. 多级下拉菜单(动态)(14435)
6. 阴历阳历转换(13878)
7. 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页)(12962)
8. Ajax使用初步(12660)
9. ASP.NET2.0 TreeView(10645)
10. Ajax.NET的几个示例代码(10435)
评论排行榜
1. Ajax实现无刷新三联动下拉框(216)
2. 功能齐全的DataGrid(70)
3. XmlHttp实现无刷新三联动下拉框(61)
4. 多级下拉菜单(动态)(44)
5. DataHelper(38)
6. ASP.NET2.0 TreeView(37)
7. Ajax使用初步(34)
8. Alexa世界排名原理,为网站赢得好排名(32)
9. Ajax.NET的几个示例代码(30)
10. 下拉日期控件(30)
功能齐全的DataGrid
//
目前功能:编辑、排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分、排序、分页
1.html代码
<
HTML
>
<
HEAD
>
<
title
>
DatagridTest
</
title
>
<
meta
content
="Microsoft Visual Studio .NET 7.1"
name
="GENERATOR"
>
<
meta
content
="C#"
name
="CODE_LANGUAGE"
>
<
meta
content
="JavaScript"
name
="vs_defaultClientScript"
>
<
meta
content
="http://schemas.microsoft.com/intellisense/ie5"
name
="vs_targetSchema"
>
<
script
language
="javascript"
>
function
fun_option(obj)
{
document.Form1.hiduserid.value
=
obj.value;
}
function
chkAll_true()
{
var
chkall
=
document.all[
"
chkAll
"
];
var
chkother
=
document.getElementsByTagName(
"
input
"
);
for
(
var
i
=
0
;i
<
chkother.length;i
++
)
{
if
( chkother[i].type
==
'checkbox')
{
if
(chkother[i].id.indexOf('chkExport')
>-
1
)
{
if
(chkall.checked
==
true
)
{
chkother[i].checked
=
true
;
}
else
{
chkother[i].checked
=
false
;
}
}
}
}
}
function
Delete()
{
var
al
=
new
Array();
var
chkother
=
document.getElementsByTagName(
"
input
"
);
for
(
var
i
=
0
,j
=
0
;i
<
chkother.length;i
++
)
{
if
( chkother[i].type
==
'checkbox')
{
if
(chkother[i].id.indexOf('chkExport')
>-
1
)
{
if
(chkother[i].checked
==
true
)
{
al[j]
=
chkother[i].value;
j
++
;
}
}
}
}
if
(al
==
""
)
{
alert('You need to select a row
in
the list before selecting Delete.\r\nPlease select a row and
try
again.');
}
else
if
(window.confirm(
"
Are you sure to delete all these?
"
))
{
var
deleteID
=
'
<%=
btndelete.ClientID
%>
';
window.document.all(deleteID).click();
}
else { return false; }
}
</
script
>
</
HEAD
>
<
body
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
TABLE
id
="Table1"
height
="100%"
cellSpacing
="1"
cellPadding
="1"
width
="100%"
border
="1"
>
<
tr
>
<
td
><
asp:dropdownlist
id
="DropDownList1"
runat
="server"
AutoPostBack
="True"
></
asp:dropdownlist
><
asp:dropdownlist
id
="DropDownList2"
runat
="server"
AutoPostBack
="True"
></
asp:dropdownlist
><
asp:dropdownlist
id
="DropDownList3"
runat
="server"
></
asp:dropdownlist
><
asp:textbox
id
="TextBox1"
runat
="server"
></
asp:textbox
><
asp:checkbox
id
="CheckBox1"
runat
="server"
Text
="可见否"
></
asp:checkbox
><
asp:button
id
="Button1"
runat
="server"
Text
="保存"
></
asp:button
><
asp:button
id
="Button2"
runat
="server"
Text
="导出Excel"
></
asp:button
></
td
>
</
tr
>
<
tr
height
="30"
>
<
td
><
INPUT
id
="chkAll"
onclick
="chkAll_true()"
type
="checkbox"
>
全选/取消
<
asp:button
id
="btndelete"
runat
="server"
Text
="删除"
></
asp:button
></
td
>
</
tr
>
<
TR
vAlign
="top"
>
<
TD
width
="100%"
colSpan
="5"
><
asp:datagrid
id
="DataGrid1"
runat
="server"
OnDeleteCommand
="Delete"
ForeColor
="Black"
GridLines
="None"
CellPadding
="2"
BackColor
="LightGoldenrodYellow"
BorderWidth
="1px"
BorderColor
="Tan"
AllowSorting
="True"
AutoGenerateColumns
="False"
DataKeyField
="UserID"
OnUpdateCommand
="Update"
OnCancelCommand
="Cancel"
OnEditCommand
="Edit"
PageSize
="5"
AllowPaging
="True"
>
<
FooterStyle
BackColor
="Tan"
></
FooterStyle
>
<
SelectedItemStyle
ForeColor
="GhostWhite"
BackColor
="DarkSlateBlue"
></
SelectedItemStyle
>
<
AlternatingItemStyle
BackColor
="PaleGoldenrod"
></
AlternatingItemStyle
>
<
HeaderStyle
Font-Bold
="True"
BackColor
="Tan"
></
HeaderStyle
>
<
Columns
>
<
asp:TemplateColumn
HeaderText
="序号"
>
<
HeaderStyle
Width
="10px"
></
HeaderStyle
>
<
ItemTemplate
>
<
INPUT
id
=radio
onclick
=fun_option(this)
type
=radio
value
='<%#
DataBinder.Eval(Container.DataItem,"UserID") %
>
' name=radio>
</
ItemTemplate
>
<
FooterTemplate
>
</
FooterTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
HeaderText
="序号"
>
<
HeaderStyle
Width
="10px"
></
HeaderStyle
>
<
FooterTemplate
>
</
FooterTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
>
<
HeaderStyle
Width
="10px"
></
HeaderStyle
>
<
ItemTemplate
>
<
asp:CheckBox
id
="chkExport"
Runat
="server"
></
asp:CheckBox
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
<
asp:BoundColumn
DataField
="UserID"
SortExpression
="UserID"
ReadOnly
="True"
HeaderText
="UserID"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
</
asp:BoundColumn
>
<
asp:TemplateColumn
SortExpression
="UserName"
HeaderText
="姓名"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
<
ItemTemplate
>
<
a
href
='form1.aspx?id=<%#
DataBinder.Eval(Container.DataItem,"UserID") %
>
&name
=
<%
# DataBinder.Eval(Container.DataItem,
"
UserName
"
)
%>
' target="_blank">
<%
# DataBinder.Eval(Container.DataItem,
"
UserName
"
)
%>
</
a
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
id
=UserName
Text
='<%#
DataBinder.Eval(Container.DataItem,"UserName") %
>
' Width="100%" Runat="server">
</
asp:TextBox
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
SortExpression
="province"
HeaderText
="省市"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
<
ItemTemplate
>
<%
# DataBinder.Eval(Container.DataItem,
"
province
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:DropDownList
id
="province"
Width
="100%"
Runat
="server"
AutoPostBack
="True"
OnSelectedIndexChanged
="ddlprovince_SelectedIndexChanged"
></
asp:DropDownList
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
SortExpression
="city"
HeaderText
="县市"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
<
ItemTemplate
>
<%
# DataBinder.Eval(Container.DataItem,
"
city
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:DropDownList
id
="city"
Runat
="server"
Width
="100%"
AutoPostBack
="True"
OnSelectedIndexChanged
="ddlcity_SelectedIndexChanged"
></
asp:DropDownList
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
SortExpression
="area"
HeaderText
="乡镇"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
<
ItemTemplate
>
<%
# DataBinder.Eval(Container.DataItem,
"
area
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:DropDownList
id
="area"
Runat
="server"
Width
="100%"
></
asp:DropDownList
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
SortExpression
="Enabled"
HeaderText
="可见否"
>
<
HeaderStyle
Width
="70px"
></
HeaderStyle
>
<
ItemTemplate
>
<%
# DataBinder.Eval(Container.DataItem,
"
Enabled
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:CheckBox
id
=chkenabled
Runat
="server"
Checked
='<%#
DataBinder.Eval(Container.DataItem,"Enabled") %
>
'>
</
asp:CheckBox
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:EditCommandColumn
ButtonType
="PushButton"
UpdateText
="更新"
HeaderText
="编辑"
CancelText
="取消"
EditText
="编辑"
></
asp:EditCommandColumn
>
<
asp:ButtonColumn
Text
="删除"
ButtonType
="PushButton"
HeaderText
="删除"
CommandName
="Delete"
></
asp:ButtonColumn
>
</
Columns
>
<
PagerStyle
NextPageText
="下一页"
PrevPageText
="上一页"
HorizontalAlign
="Right"
ForeColor
="DarkSlateBlue"
BackColor
="PaleGoldenrod"
Mode
="NumericPages"
></
PagerStyle
>
</
asp:datagrid
></
TD
>
</
TR
>
<
tr
height
="30"
>
<
td
></
td
>
</
tr
>
</
TABLE
>
<
INPUT
id
="hiduserid"
type
="hidden"
runat
="server"
>
</
form
>
</
body
>
</
HTML
>
2.cs代码
using
System.Data.SqlClient;
using
System.Text;
public
class
DatagridTest : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.DataGrid DataGrid1;
protected
System.Web.UI.HtmlControls.HtmlInputHidden hiduserid;
protected
System.Web.UI.WebControls.Button btndelete;
protected
System.Web.UI.WebControls.DropDownList DropDownList1;
protected
System.Web.UI.WebControls.DropDownList DropDownList2;
protected
System.Web.UI.WebControls.DropDownList DropDownList3;
protected
System.Web.UI.WebControls.CheckBox CheckBox1;
protected
System.Web.UI.WebControls.TextBox TextBox1;
protected
System.Web.UI.WebControls.Button Button1;
protected
System.Web.UI.WebControls.Button Button2;
private
string
constring
=
""
;
private
void
Page_Load(
object
sender, System.EventArgs e)
{
if
(
!
Page.IsPostBack)
{
ListProvince();
ListCity();
ListArea();
btndelete.Attributes.Add(
"
onclick
"
,
"return
Delete();
"
);
SortExpression
=
""
;
sort
=
"
desc
"
;
DataBind();
}
}
DataBind
#region
DataBind
private
void
DataBind()
{
string
sql
=
"
select a.UserID,a.UserName,b.province,c.city,d.area,a.Enabled,b.provinceID,c.cityID,d.areaID from testgrid a
"
;
sql
+=
"
left join province b on a.provinceID=b.provinceID
"
;
sql
+=
"
left join city c on a.cityID=c.cityID
"
;
sql
+=
"
left join area d on a.areaID=d.areaID
"
;
DataSet ds
=
GetDataSet(sql);
dt
=
ds.Tables[
0
];
dt.DefaultView.Sort
=
"
UserID asc
"
;
dt.AcceptChanges();
this
.DataGrid1.DataSource
=
dt;
this
.DataGrid1.DataBind();
}
#endregion
Web Form Designer generated code
#region
Web Form Designer generated code
override
protected
void
OnInit(EventArgs e)
{
//
//
CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base
.OnInit(e);
this
.DataGrid1.ItemDataBound
+=
new
DataGridItemEventHandler(DataGrid1_ItemDataBound);
this
.DataGrid1.SortCommand
+=
new
DataGridSortCommandEventHandler(DataGrid1_SortCommand);
this
.DataGrid1.ItemCreated
+=
new
DataGridItemEventHandler(DataGrid1_ItemCreated);
this
.DataGrid1.PageIndexChanged
+=
new
DataGridPageChangedEventHandler(DataGrid1_PageIndexChanged);
this
.btndelete.Click
+=
new
System.EventHandler(
this
.btndelete_Click);
this
.DropDownList1.SelectedIndexChanged
+=
new
System.EventHandler(
this
.DropDownList1_SelectedIndexChanged);
this
.DropDownList2.SelectedIndexChanged
+=
new
System.EventHandler(
this
.DropDownList2_SelectedIndexChanged);
this
.Button1.Click
+=
new
System.EventHandler(
this
.Button1_Click);
this
.Button2.Click
+=
new
System.EventHandler(
this
.Button2_Click);
}
/**/
///
<summary>
///
Required method for Designer support - do not modify
///
the contents of this method with the code editor.
///
</summary>
private
void
InitializeComponent()
{
this
.DropDownList1.SelectedIndexChanged
+=
new
System.EventHandler(
this
.DropDownList1_SelectedIndexChanged);
this
.DropDownList2.SelectedIndexChanged
+=
new
System.EventHandler(
this
.DropDownList2_SelectedIndexChanged);
this
.Button1.Click
+=
new
System.EventHandler(
this
.Button1_Click);
this
.Button2.Click
+=
new
System.EventHandler(
this
.Button2_Click);
this
.Load
+=
new
System.EventHandler(
this
.Page_Load);
}
#endregion
GetDataSet
#region
GetDataSet
private
DataSet GetDataSet(
string
sql)
{
constring
=
System.Configuration.ConfigurationSettings.AppSettings[
"
ConnectionString
"
];
SqlDataAdapter sda
=
new
SqlDataAdapter(sql,constring);
DataSet ds
=
new
DataSet();
sda.Fill(ds);
return
ds;
}
#endregion
DataGrid1_ItemDataBound
#region
DataGrid1_ItemDataBound
private
void
DataGrid1_ItemDataBound(
object
sender, DataGridItemEventArgs e)
{
e.Item.Cells[
1
].Text
=
Convert.ToString(e.Item.ItemIndex
+
1
);
//
产生序号
if
(e.Item.ItemType
!=
ListItemType.Header)
{
if
(e.Item.ItemIndex
%
2
==
0
)
{
e.Item.Attributes.Add(
"
onmouseout
"
,
"
this.style.backgroundColor='PaleGoldenrod'
"
);
}
else
{
e.Item.Attributes.Add(
"
onmouseout
"
,
"
this.style.backgroundColor='LightGoldenrodYellow'
"
);
}
e.Item.Attributes.Add(
"
onmouseover
"
,
"
this.style.backgroundColor='#C1D2EE'
"
);
}
switch
(e.Item.ItemType)
{
case
ListItemType.Item:
case
ListItemType.AlternatingItem:
e.Item.Attributes.Add(
"
ondblclick
"
,
"
alert('
"
+
e.Item.ItemIndex
+
"
');
"
);
break
;
case
ListItemType.Header:
e.Item.Cells[
0
].ColumnSpan
=
2
;
//
合并单元格
e.Item.Cells[
1
].Visible
=
false
;
break
;
case
ListItemType.EditItem:
for
(
int
i
=
4
; i
<
DataGrid1.Columns.Count
-
2
; i
++
)
//
只调整被编辑的列
{
if
(e.Item.ItemType
==
ListItemType.EditItem)
{
e.Item.Cells[i].Attributes.Add(
"
Width
"
,
"
70px
"
);
}
}
string
sqlprovince
=
"
select * from province
"
;
DataSet dsprovince
=
GetDataSet(sqlprovince);
//
一级
if
(e.Item.ItemType
==
ListItemType.EditItem)
{
DropDownList ddlprovince
=
(DropDownList)e.Item.FindControl(
"
province
"
);
ddlprovince.DataSource
=
dsprovince;
ddlprovince.DataTextField
=
"
province
"
;
ddlprovince.DataValueField
=
"
provinceID
"
;
ddlprovince.DataBind();
ddlprovince.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"
provinceID
"
))).Selected
=
true
;
//
二级
if
(e.Item.ItemType
==
ListItemType.EditItem)
{
if
(ddlprovince.SelectedIndex
!=-
1
)
{
string
sqlcity
=
"
select * from city where father='
"
+
ddlprovince.SelectedValue
+
"
'
"
;
DropDownList ddlcity
=
(DropDownList)e.Item.FindControl(
"
city
"
);
DataSet dscity
=
GetDataSet(sqlcity);
ddlcity.DataSource
=
dscity;
ddlcity.DataTextField
=
"
city
"
;
ddlcity.DataValueField
=
"
cityID
"
;
ddlcity.DataBind();
ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"
cityID
"
))).Selected
=
true
;
//
三级
if
(e.Item.ItemType
==
ListItemType.EditItem)
{
if
(ddlcity.SelectedIndex
!=-
1
)
{
string
sqlarea
=
"
select * from area where father='
"
+
ddlcity.SelectedValue
+
"
'
"
;
DropDownList ddlarea
=
(DropDownList)e.Item.FindControl(
"
area
"
);
DataSet dsarea
=
GetDataSet(sqlarea);
ddlarea.DataSource
=
dsarea;
ddlarea.DataTextField
=
"
area
"
;
ddlarea.DataValueField
=
"
areaID
"
;
ddlarea.DataBind();
ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,
"
areaID
"
))).Selected
=
true
;
}
}
}
}
}
break
;
default
:
break
;
}
}
#endregion
DataGrid1_SortCommand
#region
DataGrid1_SortCommand
private
void
DataGrid1_SortCommand(
object
source, DataGridSortCommandEventArgs e)
{
if
(SortExpression
==
e.SortExpression.ToString())
{
if
(sort
==
"
asc
"
)
{
sort
=
"
desc
"
;
}
else
{
sort
=
"
asc
"
;
}
}
else
{
if
(sort
==
"
asc
"
)
{
sort
=
"
desc
"
;
}
else
{
sort
=
"
asc
"
;
}
}
SortExpression
=
e.SortExpression;
dt.DefaultView.Sort
=
e.SortExpression
+
"
"
+
sort;
DataGrid1.DataSource
=
dt;
DataGrid1.DataBind();
}
#endregion
DataGrid1_ItemCreated
#region
DataGrid1_ItemCreated
private
void
DataGrid1_ItemCreated(
object
sender, DataGridItemEventArgs e)
{
for
(
int
i
=
3
; i
<
DataGrid1.Columns.Count
-
2
; i
++
)
//
-2的意思是两个button列不用排序
{
if
(i
==
0
)
continue
;
if
(e.Item.ItemIndex
==-
1
)
{
if
(DataGrid1.Columns[i].SortExpression
==
SortExpression)
{
try
{
TableCell tableCell
=
e.Item.Cells[i];
Label label
=
new
Label();
label.Font.Name
=
"
webdings
"
;
if
(sort
==
"
asc
"
)
{
label.Text
=
"
6
"
;
}
else
{
label.Text
=
"
5
"
;
}
label.Width
=
20
;
tableCell.Controls.Add(label);
}
catch
{}
}
}
}
foreach
(DataGridItem di
in
this
.DataGrid1.Items)
{
if
(di.ItemType
==
ListItemType.Item
||
di.ItemType
==
ListItemType.AlternatingItem)
{
((Button)di.Cells[
10
].Controls[
0
]).Attributes.Add(
"
onclick
"
,
"
return confirm('确认删除此项吗?');
"
);
}
}
}
#endregion
property
#region
property
private
DataTable dt
{
get
{
if
(ViewState[
"
dt
"
]
!=
null
)
{
return
(DataTable)ViewState[
"
dt
"
];
}
else
{
return
null
;
}
}
set
{
ViewState[
"
dt
"
]
=
value;
}
}
private
string
SortExpression
{
get
{
if
(ViewState[
"
SortExpression
"
]
!=
null
&&
ViewState[
"
SortExpression
"
].ToString()
!=
string
.Empty)
{
return
ViewState[
"
SortExpression
"
].ToString();
}
else
{
return
""
;
}
}
set
{
ViewState[
"
SortExpression
"
]
=
value;
}
}
private
string
sort
{
get
{
if
(ViewState[
"
sort
"
]
!=
null
&&
ViewState[
"
sort
"
].ToString()
!=
string
.Empty)
{
return
ViewState[
"
sort
"
].ToString();
}
else
{
return
""
;
}
}
set
{
ViewState[
"
sort
"
]
=
value;
}
}
#endregion
Edit
#region
Edit
protected
void
Edit(
object
sender,DataGridCommandEventArgs e)
{
this
.DataGrid1.EditItemIndex
=
e.Item.ItemIndex;
DataBind();
}
#endregion
Cancel
#region
Cancel
protected
void
Cancel(
object
sender,DataGridCommandEventArgs e)
{
this
.DataGrid1.EditItemIndex
=-
1
;
DataBind();
}
#endregion
Update
#region
Update
protected
void
Update(
object
sender,DataGridCommandEventArgs e)
{
if
(e.Item.ItemType
==
ListItemType.EditItem)
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
ConnectionString
"
]);
SqlCommand comm
=
new
SqlCommand(
"
update testgrid set UserName=@UserName,provinceID=@province,cityID=@city,areaID=@area,Enabled=@Enabled where UserID=@UserID
"
,conn);
SqlParameter parm1
=
new
SqlParameter(
"
@UserName
"
,SqlDbType.NVarChar,
50
);
parm1.Value
=
((TextBox)e.Item.FindControl(
"
UserName
"
)).Text;
SqlParameter parm2
=
new
SqlParameter(
"
@province
"
,SqlDbType.NVarChar,
50
);
parm2.Value
=
((DropDownList)e.Item.FindControl(
"
province
"
)).SelectedValue;
SqlParameter parm3
=
new
SqlParameter(
"
@city
"
,SqlDbType.NVarChar,
50
);
parm3.Value
=
((DropDownList)e.Item.FindControl(
"
city
"
)).SelectedValue;
SqlParameter parm4
=
new
SqlParameter(
"
@area
"
,SqlDbType.NVarChar,
50
);
parm4.Value
=
((DropDownList)e.Item.FindControl(
"
area
"
)).SelectedValue;
SqlParameter parm5
=
new
SqlParameter(
"
@Enabled
"
,SqlDbType.Bit);
parm5.Value
=
((CheckBox)e.Item.FindControl(
"
chkenabled
"
)).Checked;
SqlParameter parm6
=
new
SqlParameter(
"
@UserID
"
,SqlDbType.Int);
parm6.Value
=
this
.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
comm.Parameters.Add(parm4);
comm.Parameters.Add(parm5);
comm.Parameters.Add(parm6);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
this
.DataGrid1.EditItemIndex
=-
1
;
DataBind();
}
}
#endregion
Delete event
#region
Delete event
protected
void
Delete(
object
sender,DataGridCommandEventArgs e)
{
delete(
this
.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}
#endregion
ddlprovince_SelectedIndexChanged
#region
ddlprovince_SelectedIndexChanged
public
void
ddlprovince_SelectedIndexChanged(
object
sender, EventArgs e)
{
DropDownList ddlprovince
=
sender
as
DropDownList;
if
(ddlprovince.SelectedIndex
!=-
1
)
{
DropDownList ddlcity
=
((Control)(((Control)sender)).Parent).FindControl(
"
city
"
)
as
DropDownList;
string
sqlcity
=
"
select * from city where father='
"
+
ddlprovince.SelectedValue
+
"
'
"
;
DataSet dscity
=
GetDataSet(sqlcity);
ddlcity.DataSource
=
dscity;
ddlcity.DataTextField
=
"
city
"
;
ddlcity.DataValueField
=
"
cityID
"
;
ddlcity.DataBind();
}
}
#endregion
ddlcity_SelectedIndexChanged
#region
ddlcity_SelectedIndexChanged
public
void
ddlcity_SelectedIndexChanged(
object
sender, EventArgs e)
{
DropDownList ddlcity
=
sender
as
DropDownList;
if
(ddlcity.SelectedIndex
!=-
1
)
{
DropDownList ddlarea
=
((Control)(((Control)sender)).Parent).FindControl(
"
city
"
)
as
DropDownList;
string
sqlarea
=
"
select * from area where father='
"
+
ddlcity.SelectedValue
+
"
'
"
;
DataSet dsarea
=
GetDataSet(sqlarea);
ddlarea.DataSource
=
dsarea;
ddlarea.DataTextField
=
"
area
"
;
ddlarea.DataValueField
=
"
areaID
"
;
ddlarea.DataBind();
}
}
#endregion
btndelete_Click
#region
btndelete_Click
private
void
btndelete_Click(
object
sender, System.EventArgs e)
{
StringBuilder s
=
new
StringBuilder();
foreach
(DataGridItem di
in
DataGrid1.Items)
{
if
(((CheckBox)(di.FindControl(
"
chkExport
"
))).Checked
==
true
)
{
s.Append(
"
,
"
).Append(DataGrid1.DataKeys[di.ItemIndex].ToString());
}
}
if
(s.ToString().StartsWith(
"
,
"
)
==
true
)
{
delete(s.ToString().Substring(
1
,s.ToString().Length
-
1
));
}
}
#endregion
delete
#region
delete
private
void
delete(
string
id)
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
ConnectionString
"
]);
string
sql
=
@"
declare @sql nvarchar(400)
set @sql = 'delete from testgrid where UserID in('+@UserID+')'
exec( @sql)
"
;
SqlCommand comm
=
new
SqlCommand(sql,conn);
SqlParameter parm1
=
new
SqlParameter(
"
@UserID
"
,SqlDbType.VarChar,
200
);
parm1.Value
=
id;
comm.Parameters.Add(parm1);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
DataBind();
}
#endregion
ListProvince
#region
ListProvince
private
void
ListProvince()
{
string
sql
=
"
select * from province
"
;
DataSet ds
=
GetDataSet(sql);
DropDownList1.DataSource
=
ds;
DropDownList1.DataTextField
=
"
province
"
;
DropDownList1.DataValueField
=
"
provinceID
"
;
DropDownList1.DataBind();
}
#endregion
ListCity
#region
ListCity
private
void
ListCity()
{
if
(DropDownList1.SelectedIndex
!=-
1
)
{
string
sql
=
"
select * from city where father='
"
+
DropDownList1.SelectedValue
+
"
'
"
;
DataSet ds
=
GetDataSet(sql);
DropDownList2.DataSource
=
ds;
DropDownList2.DataTextField
=
"
city
"
;
DropDownList2.DataValueField
=
"
cityID
"
;
DropDownList2.DataBind();
}
}
#endregion
ListArea
#region
ListArea
private
void
ListArea()
{
if
(DropDownList2.SelectedIndex
!=-
1
)
{
string
sql
=
"
select * from area where father='
"
+
DropDownList2.SelectedValue
+
"
'
"
;
DataSet ds
=
GetDataSet(sql);
DropDownList3.DataSource
=
ds;
DropDownList3.DataTextField
=
"
area
"
;
DropDownList3.DataValueField
=
"
areaID
"
;
DropDownList3.DataBind();
}
}
#endregion
save
#region
save
private
void
Button1_Click(
object
sender, System.EventArgs e)
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
ConnectionString
"
]);
SqlCommand comm
=
new
SqlCommand(
"
insert into testgrid (UserName,provinceID,cityID,areaID,Enabled) values(@UserName,@provinceID,@cityID,@areaID,@Enabled)
"
,conn);
SqlParameter parm1
=
new
SqlParameter(
"
@UserName
"
,SqlDbType.NVarChar,
50
);
parm1.Value
=
this
.TextBox1.Text;
SqlParameter parm2
=
new
SqlParameter(
"
@provinceID
"
,SqlDbType.NVarChar,
50
);
parm2.Value
=
this
.DropDownList1.SelectedValue;
SqlParameter parm3
=
new
SqlParameter(
"
@cityID
"
,SqlDbType.NVarChar,
50
);
parm3.Value
=
this
.DropDownList2.SelectedValue;
SqlParameter parm4
=
new
SqlParameter(
"
@areaID
"
,SqlDbType.NVarChar,
50
);
parm4.Value
=
this
.DropDownList3.SelectedValue;
SqlParameter parm5
=
new
SqlParameter(
"
@Enabled
"
,SqlDbType.Bit);
parm5.Value
=
this
.CheckBox1.Checked;
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
comm.Parameters.Add(parm3);
comm.Parameters.Add(parm4);
comm.Parameters.Add(parm5);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
DataBind();
}
#endregion
private
void
DropDownList1_SelectedIndexChanged(
object
sender, System.EventArgs e)
{
ListCity();
}
private
void
DropDownList2_SelectedIndexChanged(
object
sender, System.EventArgs e)
{
ListArea();
}
private
void
Button2_Click(
object
sender, System.EventArgs e)
{
ToExcel(
this
.DataGrid1,
"
meng
"
);
}
ToExcel
#region
ToExcel
public
static
void
ToExcel(System.Web.UI.Control ctl,
string
FileName)
{
HttpContext.Current.Response.Charset
=
"
UTF-8
"
;
HttpContext.Current.Response.ContentEncoding
=
System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType
=
"
application/ms-excel
"
;
HttpContext.Current.Response.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=
"
+
""
+
FileName
+
"
.xls
"
);
ctl.Page.EnableViewState
=
false
;
System.IO.StringWriter tw
=
new
System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw
=
new
System.Web.UI.HtmlTextWriter(tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
#endregion
private
void
DataGrid1_PageIndexChanged(
object
source, DataGridPageChangedEventArgs e)
{
this
.DataGrid1.CurrentPageIndex
=
e.NewPageIndex;
DataBind();
}
}
3. 数据库教本(或下载真实数据
/Files/singlepine/area.rar
)
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[TestGrid]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop
table
[
dbo
]
.
[
TestGrid
]
GO
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[province]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop
table
[
dbo
]
.
[
province
]
GO
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[city]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop
table
[
dbo
]
.
[
city
]
GO
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[area]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop
table
[
dbo
]
.
[
area
]
GO
CREATE
TABLE
[
dbo
]
.
[
TestGrid
]
(
[
UserID
]
[
int
]
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
UserName
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
provinceID
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
cityID
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
areaID
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
Enabled
]
[
bit
]
NULL
)
ON
[
PRIMARY
]
GO
CREATE
TABLE
[
dbo
]
.
[
province
]
(
[
id
]
[
int
]
NOT
NULL
,
[
provinceID
]
[
nvarchar
]
(
6
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
province
]
[
nvarchar
]
(
40
) COLLATE Chinese_PRC_CI_AS
NULL
)
ON
[
PRIMARY
]
GO
CREATE
TABLE
[
dbo
]
.
[
city
]
(
[
id
]
[
int
]
NOT
NULL
,
[
cityID
]
[
nvarchar
]
(
6
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
city
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
father
]
[
nvarchar
]
(
6
) COLLATE Chinese_PRC_CI_AS
NULL
)
ON
[
PRIMARY
]
GO
CREATE
TABLE
[
dbo
]
.
[
area
]
(
[
id
]
[
int
]
NOT
NULL
,
[
areaID
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
area
]
[
nvarchar
]
(
60
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
father
]
[
nvarchar
]
(
6
) COLLATE Chinese_PRC_CI_AS
NULL
)
ON
[
PRIMARY
]
GO
4.源代码下载
/Files/singlepine/datagrid.rar
0
0
0
(请您对文章做出评价)
«
上一篇:
Ajax实现无刷新三联动下拉框
»
下一篇:
SEO|搜索引擎优化(如何让你的网站排名靠前)
posted on 2005-11-01 17:54
小山
阅读(29496)
评论(70)
编辑
收藏
网摘
所属分类:
DataGrid
Feedback
1043162
#1楼
2005-11-19 10:30
157686528[未注册用户]
调试的时候出现错误了~!
<INPUT id=radio onclick=fun_option(this) type=radio value='<%# DataBinder.Eval(Container.DataItem,"UserID") %>' name=radio>
这里!!!
能告诉我怎么回事吗?
QQ:157686528
回复
引用
#2楼
2005-12-07 11:12
rere[未注册用户]
我想问问这个数据库怎么设置的。我一直调试不成功。
谢谢!
我的msn:julianpeng@hotmail.com
“/exercise”应用程序中的服务器错误。
--------------------------------------------------------------------------------
ConnectionString 属性尚未初始化。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: ConnectionString 属性尚未初始化。
源错误:
行 85: SqlDataAdapter sda =new SqlDataAdapter(sql,constring);
行 86: DataSet ds=new DataSet();
行 87: sda.Fill(ds);
行 88: return ds;
行 89: }
源文件: c:\inetpub\wwwroot\exercise\webform1.aspx.cs 行: 87
回复
引用
#3楼
[
楼主
]
2005-12-07 12:34
小山
constring=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
是从web.config中读取的,在web.config配置就可以了,如下
<appSettings>
<add key="ConnectionString" value="data source=Meng;initial catalog=Document;user id=sa;password=sa;packet size=4096 ;"></add>
</appSettings>
需要修改成你自己的数据库连接
回复
引用
查看
#4楼
2005-12-07 16:36
rere[未注册用户]
数据库的问题解决了。
可是现在“编辑”按钮不能正常操作,
一直显示
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 140: ddlcity.DataValueField="cityID";
行 141: ddlcity.DataBind();
行 142: ddlcity.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"cityID"))).Selected=true;
行 143: }
行 144: }
回复
引用
#5楼
[
楼主
]
2005-12-07 17:27
小山
ddlcity.DataValueField="cityID";
这个中的cityID要和你数据库字段相对应,我这里只是测试数据库,你要修改成实际的数据库字段
回复
引用
查看
#6楼
2005-12-12 10:14
Shina[未注册用户]
ddlpovince_SelectedIndexChanged函数的意思能讲解一下吗?
如果我不需要联动下拉菜单,只需要一个下拉菜单显示数据库的内容还需要用这个汉书吗?
回复
引用
#7楼
[
楼主
]
2005-12-12 13:33
小山
ddlpovince_SelectedIndexChanged是用来联动的事件,如果不需要联动,把他删掉就可以了
回复
引用
查看
#8楼
2005-12-14 15:54
Shina[未注册用户]
如果制作三联动,应该做那些修改,请赐教!
回复
引用
#9楼
[
楼主
]
2005-12-14 21:10
小山
加了三联动及保存功能
回复
引用
查看
#10楼
2005-12-15 08:49
tanke[未注册用户]
加个分页功能啊,这点最重要了
回复
引用
#11楼
[
楼主
]
2005-12-15 08:58
小山
分页功能参照
http://singlepine.cnblogs.com/articles/281425.html
帮上去就可以
回复
引用
查看
#12楼
2005-12-16 15:39
cnjack[未注册用户]
请教:
当光标在行中移动时,在某一行上单击时(不是选中单选钮或CheckBox),如何使DropDownList1、DropDownList2和DropDownList3获得选择行相应的值呀?
或者:
在某一行上单击时,如何激活一后台事件(不是脚本)
回复
引用
#13楼
2005-12-16 16:14
Shina[未注册用户]
小山老师我做了一个三联动,但是现在出了一个问题就是选择一级栏目的内容后只对二级栏目起作用,比如我依次选择一级栏目、二级栏目、三级栏目后如果我再次选择一个一级栏目,三级栏目的内容还是原来的三级栏目内容,不更新,我不知道应该怎么修改,小山老师能指点指点吗?
我的asp源码如下:
<asp:dropdownlist id="DropDownListclass1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ljclass2"></asp:dropdownlist><asp:dropdownlist id="Dropdownlistclass2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ljclass3">
<asp:ListItem Value="" Selected="True">请选择二级栏目</asp:ListItem>
</asp:dropdownlist><asp:dropdownlist id="Dropdownlistclass3" runat="server">
<asp:ListItem Value="" Selected="True">请选择三级栏目</asp:ListItem>
</asp:dropdownlist>
asp.cs源码:
#region ljclass2
public void ljclass2(object sender, EventArgs e)
{
DropDownList ddlclass1 = sender as DropDownList;
if(ddlclass1.SelectedIndex!=-1)
{
DropDownList ddl=((Control)(((Control)sender)).Parent).FindControl("Dropdownlistclass2") as DropDownList;
string sqlcity="select * from jq_class2 where class1_name='"+ddlclass1.SelectedValue+"'";
DataSet dsclass2=GetDataSet(sqlcity);
ddl.DataSource=dsclass2;
ddl.DataTextField="class2_name";
ddl.DataValueField="class2_name";
ddl.DataBind();
ddl.Items.Insert(0,"请选择二级栏目");
ddl.Items.FindByText("请选择二级栏目").Selected=true;
}
}
#endregion
#region ljclass3
public void ljclass3(object sender, EventArgs e)
{
DropDownList ddlclass2 = sender as DropDownList;
if(ddlclass2.SelectedIndex!=-1)
{
DropDownList ddl3=((Control)(((Control)sender)).Parent).FindControl("Dropdownlistclass3") as DropDownList;
string sqlcity3="select * from jq_class3 where class1_name='"+DropDownListclass1.SelectedValue+"' and class2_name='"+ddlclass2.SelectedValue+"'";
DataSet dsclass3=GetDataSet(sqlcity3);
ddl3.DataSource=dsclass3;
ddl3.DataTextField="class3_name";
ddl3.DataValueField="class3_name";
ddl3.DataBind();
}
}
#endregion
回复
引用
#14楼
2005-12-20 09:24
寒羽[未注册用户]
请问,省份列中下拉列表控件是如何绑定的,代码是在DataGrid_EditCommand事件中写吗?
回复
引用
#15楼
2005-12-20 09:28
寒羽[未注册用户]
我现在只需要一个下拉菜单显示数据库的内容,绑定的代码在哪个事件中写,如何实现,我试了很多方法都未实现。
回复
引用
#16楼
2006-01-06 14:35
hoking[未注册用户]
如何实现在DataGrid上面DoubleClick一下让单元格变成可编辑呢?
回复
引用
#17楼
2006-01-09 12:24
cxy[未注册用户]
行 160: ddlarea.DataValueField="areaID";
行 161: ddlarea.DataBind();
行 162: ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
行 163: }
行 164: }
回复
引用
#18楼
2006-01-09 12:36
cxy[未注册用户]
为什么有些编辑按纽能用,有些不能用呢?
回复
引用
#19楼
2006-01-09 13:06
cxy[未注册用户]
小山,姓名如果没有输入,再切换不同的编辑按纽时候会出错。
回复
引用
#20楼
2006-01-09 14:09
常常[未注册用户]
点顶部的删除按纽,然后取消,会出错。
回复
引用
#21楼
2006-01-12 20:50
cxy[未注册用户]
要是能做一下分页的就好了。
if(chkother[i].checked=true)
这句应该为==true
回复
引用
#22楼
[
楼主
]
2006-01-13 09:16
小山
提供了最新代码
回复
引用
查看
#23楼
2006-01-20 09:17
五月人[未注册用户]
if (al == "")
{
alert('You need to select a row in the list before selecting Delete.\r\nPlease select a row and try again.');
}
else if (window.confirm("Are you sure to delete all these?"))
{
var deleteID='<%=btndelete.ClientID%>';
window.document.all(deleteID).click();
}
弹出提示框“Are you sure to delete all these?”,我按取消,但还会执行提交程序,这是怎么回事呀?
回复
引用
#24楼
2006-02-10 22:52
chen[未注册用户]
请问小山,这个控件可以做成像datagrid那样的控件吗?直接拖放来使用吗?
回复
引用
#25楼
[
楼主
]
2006-02-10 23:16
小山
可以,做法参考
http://singlepine.cnblogs.com/articles/323386.html
需要自己修改
回复
引用
查看
#26楼
2006-02-12 11:57
路过[未注册用户]
你可以把这个控件做成自定义控件放到工具箱里,然后就可以拖放了
回复
引用
#27楼
2006-02-27 17:28
一个建议[未注册用户]
能不能做成一个UserControl呢,这样通用性更强啊,作者考虑一下
回复
引用
#28楼
2006-03-16 17:29
方方![未注册用户]
小山老师好:
请问为什么出现这个错误啊?在导出数据的时候!!
类型“DataGridLinkButton”的控件“DataGrid1__ctl1__ctl0”必须放在具有 runat=server 的窗体标记内。
回复
引用
#29楼
2006-03-23 14:04
hao1geren[未注册用户]
@五月人
假设,你按下button键执行你所说的代码
解决方法:
可以在html中<head></head>中添加如下代码
<script language="javascript" event="onclick()" for="btnInsert">
return confirm("确定?");
</script>
或者在Page_load事件中添加
btnInsert.Attributes.Add("onclick","return confirm('确定?');");
即可
回复
引用
#30楼
2006-03-26 23:36
rao[未注册用户]
不错我试了一下,果然好用.小山老师请问有没有自定义控件的例子.
回复
引用
#31楼
2006-03-30 12:57
精品烂人[未注册用户]
to 方方!
导出之前设置link列显示属性设置为false就行了。
this.grd.Columns[grd.Columns.Count-1].Visible=false;
回复
引用
#32楼
2006-03-30 22:58
tret[未注册用户]
datagrid 中添加按纽列,却不能触发相应事件
在datagrid里边的模板列里定义了一个button按钮
<asp:Button Runat="server" ID="Edit1_btn" Text="编辑" CausesValidation="False" CommandName="Edit" EnableViewState="False"></asp:Button>;
在pageload里边定义了相应函数
Private Sub announce_DataGrid_EditCommand()
没有响应
为什么在我这按纽非得改成linkbutton呢。可我下的源代码有相应功能啊。要做成
按钮 数据 数据 数据
按钮 数据 数据 数据
按钮 数据 数据 数据
然后点击按钮,弹出一个小窗口,小山老师帮帮忙啊,谢啦
回复
引用
#33楼
2006-04-05 10:08
谭群军[未注册用户]
我在点击保存的时候。你会保存两条相同的记录了
回复
引用
#34楼
2006-04-05 10:17
谭群军[未注册用户]
我在点击保存的时候,你保存两条相同的记录。加载数据的时候出现了八条数据。一条记录会加载4次。这是怎么回事啊,小山老师。
string sql="select a.UserID,a.UserName,b.province,c.city,d.area,a.Enabled,b.provinceID,c.cityID,d.areaID from testgrid a ";
sql+=" left join province b on a.provinceID=b.provinceID";
sql+=" left join city c on a.cityID=c.cityID";
sql+=" left join area d on a.areaID=d.areaID";
这个语句好像有错啊
回复
引用
#35楼
2006-06-12 10:19
cl[未注册用户]
行 160: ddlarea.DataValueField="areaID";
行 161: ddlarea.DataBind();
行 162: ddlarea.Items.FindByValue(Convert.ToString(DataBinder.Eval(e.Item.DataItem,"areaID"))).Selected=true;
行 163: }
行 164: }
请问怎么回事?
回复
引用
#36楼
2006-06-23 16:12
decar[未注册用户]
string sql="select a.UserID,a.UserName,b.province,c.city,d.area,a.Enabled,b.provinceID,c.cityID,d.areaID from testgrid a ";
对象名 'testgrid' 无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 对象名 'testgrid' 无效。
什么原因呢
回复
引用
#37楼
2006-06-23 16:14
decar[未注册用户]
好像是数据库不完整
回复
引用
#38楼
2006-06-28 16:26
hao1geren[未注册用户]
@decar
你没有那个数据库
回复
引用
#39楼
2006-07-05 12:53
panxy[未注册用户]
为什么我用您的方法写了一个DATAGRID,点编辑的时候没有出现TEXTBOX让我输入呢???
回复
引用
#40楼
2006-07-05 13:39
panxy[未注册用户]
小山老师,我现在用BOUNDCOLUMN就可以实现编辑输入,为什么TEMPLATECOLUMN就不可以呢?
回复
引用
#41楼
[
楼主
]
2006-07-05 22:14
小山
模板列如果也要出现TEXTBOX,要自己加,如
<EditItemTemplate>
<asp:TextBox id=UserName Text='<%# DataBinder.Eval(Container.DataItem,"UserName") %>' Width="100%" Runat="server">
</asp:TextBox>
</EditItemTemplate>
回复
引用
查看
#42楼
2006-07-06 15:05
panxy[未注册用户]
恩,这个问题我已经解决了,小山老师还有一个问题,我想取得DATAGRID某个单元格的值,用下面的语句为什么取到的总是空呢?
temp = DataGrid1.Items[i].Cells[1].Text;
回复
引用
#43楼
2006-07-06 15:43
panxy[未注册用户]
原来用摸板列绑定的数据不能取到,晕啊。
回复
引用
#44楼
2006-07-10 22:00
陈野[未注册用户]
我的页面省份和城市两个DropDownList是动态别载的控件,请问OnSelectedIndexChanged属性怎么加载?
我用
myDropDownList.OnSelectedIndexChanged="Province_SelectedIndexChanged";和
myDropDownList.Attributes.Add("OnSelectedIndexChanged","Province_SelectedIndexChanged");都不行, 请问我该怎么做,谢谢?
回复
引用
#45楼
2006-09-08 15:35
cleverboy[匿名][未注册用户]
@精品烂人
为什么我还是不行
“/WebApplication2”应用程序中的服务器错误。
--------------------------------------------------------------------------------
类型“DataGridLinkButton”的控件“Datagrid1_DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 类型“DataGridLinkButton”的控件“Datagrid1_DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。
源错误:
行 569: System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
行 570:
行 571: ctl.RenderControl(hw);
行 572: HttpContext.Current.Response.Write(tw.ToString());
行 573: HttpContext.Current.Response.End();
回复
引用
#46楼
2006-09-11 19:25
FreeWing[未注册用户]
已收藏,谢谢楼主。!
回复
引用
#47楼
2006-09-12 10:56
绿茶[匿名][未注册用户]
耐心的小山老师,真是感激你啊,学到了不少呢。呵呵
回复
引用
#48楼
2006-09-12 16:15
挂幌子[未注册用户]
没有数据库的数据啊~
回复
引用
#49楼
2006-11-02 14:08
cuiguohong[未注册用户]
我想请教个问题:
我用的是TemplateColumn,三列,
每一列中都是一个DropDownList控件,当DropDownList1的内容改变时,动态的增加与上一行相同的行,这个功能能实现吗?如果能,怎么实现?
回复
引用
#50楼
2006-11-27 11:54
ztj[未注册用户]
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
能不能把数据库为发给我一下,zhangtianjian@hotmail.com,你有很多好文章,没有库或表,遗憾.创建表的SQL贴出来也行呀
回复
引用
#51楼
2006-11-27 12:06
ztj[未注册用户]
不好意思.是我看错了,有库的.谢谢小山老师!
回复
引用
#52楼
2006-12-02 12:55
山谷风轻扬[未注册用户]
下载的真实数据里面好像没有testgrid这张表,请问没有这张表大家是怎么样看到运行界面的.或者是数据库中有testgrid这张表而我没看见.请大家指教,谢谢了.
回复
引用
#53楼
2006-12-02 20:20
山谷风轻扬[未注册用户]
将下载的表中有个表名错了,应该为PROVINCE.注意改一下,将下载的表导入数据库后,然后执行下面这条数据.数据库就齐全了.执行下界面就可以看到了.
insert into TestGrid(UserName,provinceID,cityID,areaID,Enabled) select 1,provinceID,cityID,areaID,1 from area a,city c,province p where p.provinceID=c.father and c.cityID=a.father
回复
引用
#54楼
2006-12-06 16:04
yunhuasheng
很好
!
回复
引用
查看
#55楼
2006-12-10 13:39
ISAEL1117[未注册用户]
我现在很需要你这一段源代码,能不能把整个页面都发给我呢.aspx和.aspx.cs的文件都发到我邮箱里吧ISAEL1117@tom.com 我qq54470434非常感谢。
回复
引用
#56楼
2006-12-12 13:15
今日小子[未注册用户]
小山老师,我在调整DATAGRID的样式时是遇到了这样的问题:
我在页面中设置背景色(如blue)后,DATAGRID中页导航原来设定的颜色(如gray)就显示错误了,变成一个有着边框色(gray),底色(blue)的页导航,请问怎样才可以正确的显示。
P.S.我先在样式表中设定了页面背景色,再在DATAGRID中设置页导航背景色,在虚拟发布的时候就出现了上述问题。当我不再利用样式表控制页面背景色,而是直接在页面中设置其背景色时,虚拟发布就没有上述颜色混乱问题,但在真实发布时确出现了混乱的问题。
能帮我一下吗?谢谢
回复
引用
#57楼
2007-01-16 08:54
kudo[未注册用户]
我也有同样的问题:
“/WebApplication2”应用程序中的服务器错误。
--------------------------------------------------------------------------------
类型“DataGridLinkButton”的控件“Datagrid1_DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 类型“DataGridLinkButton”的控件“Datagrid1_DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。
源错误:
行 569: System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
行 570:
行 571: ctl.RenderControl(hw);
行 572: HttpContext.Current.Response.Write(tw.ToString());
行 573: HttpContext.Current.Response.End();
回复
引用
#58楼
2007-04-09 12:06
lzh[未注册用户]
确实可以实现 但是删除以后 点刷新 删除的记录又出现了(数据库里已经被删除)
回复
引用
#59楼
2007-04-27 21:31
paradise[未注册用户]
真不容易啊 终于在网上找到我想要的资料了,太感谢了
非常珍贵啊!
回复
引用
#60楼
2007-05-09 10:25
丁香[未注册用户]
请问,如果我在点击编辑的时候,下拉菜单出现的选项不是原来选定的项了,而是数据集中第一个项,这个问题怎么解决?
回复
引用
#61楼
2007-05-10 19:36
ljg365@sohu.com[未注册用户]
一直未能解决datagrid三层表头问题,希望在此各位大侠能帮下忙,谢谢!
回复
引用
#62楼
2007-07-20 10:31
oxsoft.cn[未注册用户]
不错的
回复
引用
#63楼
2007-07-23 16:47
chenruan
可以用的,如果封装成一个用户控件就好了
回复
引用
查看
#64楼
2007-07-30 14:16
小白之家[未注册用户]
好久没看到小山更新blog了
回复
引用
#65楼
2007-09-06 09:37
R10[未注册用户]
下载的源代码什么都没有,骗人啊,做人要厚道呀!
回复
引用
#66楼
2007-09-14 11:06
guoguo[未注册用户]
那个点击排序标题后的按钮是怎么出现的呀,能不能再指点下呀,小山老师!急待回复啊!
回复
引用
#67楼
2007-09-14 11:34
guoguo[未注册用户]
那个点击排序标题后的按钮是怎么出现小三角的呀,能不能再指点下呀,小山老师!急待回复啊!
回复
引用
#68楼
2007-10-14 07:59
ttw[未注册用户]
@cleverboy[匿名]
回复
引用
#69楼
2007-10-14 07:59
ttw[未注册用户]
asdf
回复
引用
#70楼
2008-01-17 16:34
whg[未注册用户]
老师 :
我想用VB做个程序,让学生在internet上查询自己的考试成绩。不知道怎么做。请老师帮帮忙》
回复
引用
注册用户登录后才能发表评论,请
登录
或
注册
。
IT新闻
:
·
知名扩展 Firebug 的简化版登陆 Chrome
·
Google 悄悄地启用 1e100.net,打枪地不要
·
从 Google 代码库找到的好东西
·
苹果在线商店临时关闭 或将推新Macbook
·
豆瓣网推出豆瓣电台iPhone客户端
每天10分钟,轻松学英语
专题:
iPad
jQuery
Windows 7
网站导航:
博客园首页
IT新闻
个人主页
闪存
程序员招聘
社区
博问
网摘
China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关搜索:
DataGrid
在知识库中查看:
功能齐全的DataGrid
Powered by:
博客园
Copyright © 小山