小山

付出最大努力,追求最高成就,享受最佳生活,收获无悔人生

博客园 首页 新随笔 联系 订阅 管理
  199 Posts :: 0 Stories :: 1221 Comments :: 76 Trackbacks
//目前功能:编辑、排序、单选项、复选项、合并单元格、产生序列号、联动下拉框、删除、超连接、鼠标移动改变颜色、奇偶项颜色区分、排序、分页

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>
                                        
<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

        
Web Form Designer generated code

        
GetDataSet
        
        
DataGrid1_ItemDataBound

        
DataGrid1_SortCommand

        
DataGrid1_ItemCreated

        
property

        
Edit

        
Cancel

        
Update

        
Delete event

        
ddlprovince_SelectedIndexChanged

        
ddlcity_SelectedIndexChanged

        
btndelete_Click

        
delete

        
ListProvince

        
ListCity

        
ListArea

        
save

        
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
        
        
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 (11NOT 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
posted on 2005-11-01 17:54 小山 阅读(28199) 评论(70)  编辑 收藏 网摘 所属分类: DataGrid

Feedback

调试的时候出现错误了~!
<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 小山      
提供了最新代码
  回复  引用  查看    

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">http://singlepine.cnblogs.com/articles/323386.html 需要自己修改
  回复  引用  查看    

#26楼 2006-02-12 11:57 路过[未注册用户]
你可以把这个控件做成自定义控件放到工具箱里,然后就可以拖放了
  回复  引用    

能不能做成一个UserControl呢,这样通用性更强啊,作者考虑一下
  回复  引用    

小山老师好:

请问为什么出现这个错误啊?在导出数据的时候!!
类型“DataGridLinkButton”的控件“DataGrid1__ctl1__ctl0”必须放在具有 runat=server 的窗体标记内。

  回复  引用    

@五月人
假设,你按下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[未注册用户]
不错我试了一下,果然好用.小山老师请问有没有自定义控件的例子.
  回复  引用    

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呢。可我下的源代码有相应功能啊。要做成

按钮 数据 数据 数据
按钮 数据 数据 数据
按钮 数据 数据 数据


然后点击按钮,弹出一个小窗口,小山老师帮帮忙啊,谢啦


  回复  引用    

我在点击保存的时候。你会保存两条相同的记录了
  回复  引用    

我在点击保存的时候,你保存两条相同的记录。加载数据的时候出现了八条数据。一条记录会加载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[未注册用户]
好像是数据库不完整
  回复  引用    

@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");都不行, 请问我该怎么做,谢谢?

  回复  引用    

@精品烂人
为什么我还是不行

“/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();


  回复  引用    

已收藏,谢谢楼主。!
  回复  引用    

耐心的小山老师,真是感激你啊,学到了不少呢。呵呵
  回复  引用    

没有数据库的数据啊~
  回复  引用    

我想请教个问题:
我用的是TemplateColumn,三列,
每一列中都是一个DropDownList控件,当DropDownList1的内容改变时,动态的增加与上一行相同的行,这个功能能实现吗?如果能,怎么实现?


  回复  引用    

#50楼 2006-11-27 11:54 ztj[未注册用户]
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
没有数据库,这么好的程序不能看!
能不能把数据库为发给我一下,zhangtianjian@hotmail.com,你有很多好文章,没有库或表,遗憾.创建表的SQL贴出来也行呀

  回复  引用    

#51楼 2006-11-27 12:06 ztj[未注册用户]
不好意思.是我看错了,有库的.谢谢小山老师!
  回复  引用    

下载的真实数据里面好像没有testgrid这张表,请问没有这张表大家是怎么样看到运行界面的.或者是数据库中有testgrid这张表而我没看见.请大家指教,谢谢了.
  回复  引用    

将下载的表中有个表名错了,应该为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      
很好

  回复  引用  查看    

我现在很需要你这一段源代码,能不能把整个页面都发给我呢.aspx和.aspx.cs的文件都发到我邮箱里吧ISAEL1117@tom.com 我qq54470434非常感谢。
  回复  引用    

小山老师,我在调整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[未注册用户]
确实可以实现 但是删除以后 点刷新 删除的记录又出现了(数据库里已经被删除)
  回复  引用    

真不容易啊 终于在网上找到我想要的资料了,太感谢了
非常珍贵啊!

  回复  引用    

#60楼 2007-05-09 10:25 丁香[未注册用户]
请问,如果我在点击编辑的时候,下拉菜单出现的选项不是原来选定的项了,而是数据集中第一个项,这个问题怎么解决?
  回复  引用    

一直未能解决datagrid三层表头问题,希望在此各位大侠能帮下忙,谢谢!
  回复  引用    

不错的
  回复  引用    

#63楼 2007-07-23 16:47 chenruan      
可以用的,如果封装成一个用户控件就好了
  回复  引用  查看    

好久没看到小山更新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上查询自己的考试成绩。不知道怎么做。请老师帮帮忙》

  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容: