欢迎光临
我们一直在努力

集各种功能于一身的DataGrid-ASP教程,数据库相关

建站超值云服务器,限时71元/月

requiredfieldvalidator控件用来校验一个输入框中是否输入了值,regularexpressionvalidator控件用来进行正则表达是的匹配。关于正则表达式的说明请参阅其他资料.

其中controltovalidate属性就是需要校验的文本框的id号.标签中的文本就是在校验不成功的时候显示出来的提示,display属性则是提示信息的显示方式.

datagrid中<columns>标签内的内容就是datagrid的列了,列中还可以添加模版列,对应每一模版列,可以有<itemtemplate>,<edititemtemplate>,<headertemplate>,<footertemplate>几个标签,其中<itemtemplate>就是datagrid在正常显示的时候列的标签了,<edittemplate>也就是在编辑状态中的datagrid列的样式了.

在这些标签中我们可以插入控件,然后在后台代码中用datagrid1.item[i].findcontrols(“coltrol name”)可以对datagrid中的控件进行操作.

为了在datageid为编辑状态的时候控制datagrid包含控件的状态,我们可以用css样式定义,将下面代码加入aspx文件的</head>和<body>中,然后在<asp:textbox>标签中加入cssclass=“myclass“即可改片控件的样式。(跟普通的方法没什么区别啦,呵呵。)

<style type="text/css">.mytextbox { border-right: #000000 1px solid; border-top: #000000 1px solid; font-size: 9pt; border-left: #000000 1px solid; width: 80px; border-bottom: #000000 1px solid; height: 20px }

</style>

这里只给出了部分代码,如需要完整代码,请来信索取。cheaper_c@sina.com

———————————————————-下面是运行时屏幕接图—————————————–

————————————————部分后台代码———————————————————

private new void databind()

{

databind("au_fname");

}

//重载databind()方法,方便datagrid中进行排序

private void databind(string sortfield)

{

ds = new dataset();

da = new sqldataadapter("select * from authors_new",conn);

da.fill(ds,"authors");

dataview source = ds.tables["authors"].defaultview;

source.sort = sortfield;

datagrid1.datasource = source;

datagrid1.databind();

sqldataadapter ddl_da = new sqldataadapter("select distinct state from authors_new",conn);

ddl_da.fill(ddl_table);

regclientscript();

}

//这段方法参照了vzxq兄的《在datagrid页眉上添加全选的checkbox控件》一文

//原文地址: http://blog.csdn.net/vzxq/archive/2004/09/13/103156.aspx

private void regclientscript()

{

//对于datagrid1.controls[0],大家可以参看vzxq兄的另一篇文章

//http://blog.csdn.net/vzxq/archive/2004/09/13/103167.aspx

foreach (datagriditem item in datagrid1.controls[0].controls)

{

if (item.itemtype == listitemtype.header)

{

checkbox chkall=(checkbox)item.findcontrol("chkall");

system.text.stringbuilder strscript = new system.text.stringbuilder("<script language=javascript> \n");

strscript.append(" function checkstatus() { \n");

strscript.append(" var ball = true; \n");

strscript.append(" ball = document.all(" + chkall.clientid + ").checked; \n");

for(int i=0; i<datagrid1.items.count ; i++)

{

strscript.append(" document.all(" + datagrid1.items[i].cells[0].findcontrol("checkbox1").clientid + ").checked = ball; \n");

}

strscript.append(" } \n");

strscript.append("</script> \n");

if(!page.isclientscriptblockregistered("checkstatus"))

page.registerclientscriptblock("checkstatus",strscript.tostring());

chkall.attributes.add("onclick","checkstatus()");

break;

}

}

}

//当点击”编辑”按钮的时候触发的服务器端函数

//首先将panel的visible属性设置为false,因为当datagrid在编辑状态时单元格中的控件(如textbox)会将datageid撑宽

//挤到我们添加记录的panel就不好看了.

public void grid_edit(object sender, system.web.ui.webcontrols.datagridcommandeventargs e)

{

panel1.visible = false;

datagrid1.edititemindex = (int)e.item.itemindex;

databind();

system.web.ui.webcontrols.dropdownlist ddl_state = (dropdownlist)datagrid1.items[(int)e.item.itemindex].findcontrol("edit_state");

ddl_state.datasource = ddl_table.defaultview;

ddl_state.datatextfield = "state";

ddl_state.databind();

for(int i=0;i<ddl_table.rows.count;i++)

{

if(((label)e.item.findcontrol("lbl_state")).text==ddl_table.rows[i][0].tostring())

{

//这段代码的作用是对编辑状态中的datagrid中的控件附值.ddl_table就是前面我们创建的datatable

ddl_state.selectedindex = i;

break;

}

}

}

//取消datagrid编辑状态的时候触发的服务器端代码

public void grid_cancel(object sender, system.web.ui.webcontrols.datagridcommandeventargs e)

{

panel1.visible = true;//将panel显示出来

datagrid1.edititemindex = -1;

this.databind();

}

//点击”更新”按钮是触发的函数,更新数据库中的记录

public void grid_update(object sender, system.web.ui.webcontrols.datagridcommandeventargs e)

{

int pageindex = datagrid1.currentpageindex;

sqlcommand cmd = new sqlcommand();

cmd.commandtext = "update authors_new set au_id=@au_id, au_lname=@au_lname, au_fname=@au_fname, phone=@phone, address=@address, state=@state, zip=@zip, city=@city, contract=@contract where au_id = @au_id";

cmd.parameters.add(new sqlparameter("@au_id",sqldbtype.varchar,11));

cmd.parameters["@au_id"].value = e.item.cells[1].text;

cmd.parameters.add(new sqlparameter("@au_lname",sqldbtype.varchar,40));

cmd.parameters["@au_lname"].value = ((textbox)e.item.findcontrol("edit_lname")).text;

cmd.parameters.add(new sqlparameter("@au_fname",sqldbtype.varchar,20));

cmd.parameters["@au_fname"].value = ((textbox)e.item.findcontrol("edit_fname")).text;

cmd.parameters.add(new sqlparameter("@phone",sqldbtype.char,12));

cmd.parameters["@phone"].value = ((textbox)e.item.findcontrol("edit_phone")).text;

cmd.parameters.add(new sqlparameter("@address",sqldbtype.varchar,40));

cmd.parameters["@address"].value = ((textbox)e.item.findcontrol("edit_address")).text;

cmd.parameters.add(new sqlparameter("@state",sqldbtype.varchar,40));

cmd.parameters["@state"].value = ((dropdownlist)e.item.findcontrol("edit_state")).selecteditem.value;

cmd.parameters.add(new sqlparameter("@zip",sqldbtype.char,5));

cmd.parameters["@zip"].value = ((textbox)e.item.findcontrol("edit_zip")).text;

cmd.parameters.add(new sqlparameter("@city",sqldbtype.varchar,20));

cmd.parameters["@city"].value = ((textbox)e.item.findcontrol("edit_city")).text;

cmd.parameters.add(new sqlparameter("@contract",sqldbtype.char,1));

if(((checkbox)e.item.findcontrol("edit_contract")).checked)

{

cmd.parameters["@contract"].value = "1";

}

else

{

cmd.parameters["@contract"].value = "0";

}

cmd.connection = conn;

try

{

conn.open();

cmd.executenonquery();

conn.close();

}

catch(exception ex)

{

label1.text = ex.message.tostring();

}

finally

{

cmd.dispose();

}

datagrid1.edititemindex = -1;

databind();

panel1.visible = true;

datagrid1.currentpageindex = pageindex;

}

//排序

public void grid_sort(object sender, system.web.ui.webcontrols.datagridsortcommandeventargs e)

{

databind(e.sortexpression);

}

//分页

public void grid_page(object sender, system.web.ui.webcontrols.datagridpagechangedeventargs e)

{

datagrid1.edititemindex = -1;

panel1.visible = true;

datagrid1.currentpageindex = e.newpageindex;

databind();

}

//向数据库中插入记录

private void button2_click(object sender, system.eventargs e)

{

sqlcommand cmd = new sqlcommand();

cmd.commandtext= "insert into authors_new (au_id, au_lname, au_fname, phone, address, state, zip, city, contract) values (@au_id, @au_lname, @au_fname, @phone, @address, @state, @zip, @city, @contract)";

cmd.parameters.add(new sqlparameter("@au_id",sqldbtype.varchar,11));

cmd.parameters["@au_id"].value = txt_id.text;

cmd.parameters.add(new sqlparameter("@au_lname",sqldbtype.varchar,40));

cmd.parameters["@au_lname"].value = txt_lname.text;

cmd.parameters.add(new sqlparameter("@au_fname",sqldbtype.varchar,20));

cmd.parameters["@au_fname"].value = txt_fname.text;

cmd.parameters.add(new sqlparameter("@phone",sqldbtype.char,12));

cmd.parameters["@phone"].value = txt_phone.text;

cmd.parameters.add(new sqlparameter("@address",sqldbtype.varchar,40));

cmd.parameters["@address"].value = txt_address.text;

cmd.parameters.add(new sqlparameter("@state",sqldbtype.varchar,40));

cmd.parameters["@state"].value = txt_state.text;

cmd.parameters.add(new sqlparameter("@zip",sqldbtype.char,5));

cmd.parameters["@zip"].value = txt_zip.text;

cmd.parameters.add(new sqlparameter("@city",sqldbtype.varchar,20));

cmd.parameters["@city"].value = txt_city.text;

cmd.parameters.add(new sqlparameter("@contract",sqldbtype.char,1));

if(chk_contract.checked)

{

cmd.parameters["@contract"].value = "1";

}

else

{

cmd.parameters["@contract"].value = "0";

}

cmd.connection = conn;

try

{

conn.open();

cmd.executenonquery();

conn.close();

}

catch(exception ex)

{

label1.text = ex.message.tostring();

}

finally

{

cmd.dispose();

}

databind();

}

———————————————————-部分前台代码———————————————————————–

<asp:datagrid id="datagrid1" oneditcommand="grid_edit" oncancelcommand="grid_cancel" onupdatecommand="grid_update" autogeneratecolumns="false" allowsorting="true" onpageindexchanged="grid_page" onsortcommand="grid_sort" allowpaging="true">

<columns>

<asp:templatecolumn>

<headertemplate>

<asp:checkbox id="chkall" runat="server"></asp:checkbox>全选

</headertemplate>

<itemtemplate>

<asp:checkbox id="checkbox1" runat="server"></asp:checkbox>

</itemtemplate>

</asp:templatecolumn>

<asp:boundcolumn visible="false" datafield="au_id" readonly="true"></asp:boundcolumn>

<asp:templatecolumn sortexpression="phone" headertext="电话">

<itemtemplate>

<asp:label runat="server" text=<%# databinder.eval(container.dataitem,"phone")%>>

</asp:label>

</itemtemplate>

<edititemtemplate>

<asp:textbox cssclass="mytextbox" runat="server" id="edit_phone" text=<%# databinder.eval(container.dataitem, "phone")%>>

</asp:textbox>

<asp:requiredfieldvalidator id="phonereqval" runat="server" controltovalidate="edit_phone" display="dynamic">*</asp:requiredfieldvalidator>

<asp:regularexpressionvalidator id="phoneregval" runat="server" controltovalidate="edit_phone" display="dynamic"

validationexpression="[0-9]{3} [0-9]{3}-[0-9]{4}">*电话号码格式xxx xxx-xxxx</asp:regularexpressionvalidator>

</edititemtemplate>

</asp:templatecolumn>

</columns>

<pagerstyle horizontalalign="center" forecolor="white" backcolor="#000084" mode="numericpages"></pagerstyle>

</asp:datagrid>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 集各种功能于一身的DataGrid-ASP教程,数据库相关
分享到: 更多 (0)

相关推荐

  • 暂无文章