欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » SmartGrid使用教程 » 正文

SmartGrid教程(十一):客户端事件与数据导出

创建时间:2012年03月12日 14:50  阅读次数:(4324)
分享到:
客户端事件因本站前面有讲过,所以这里就不再讲了,链接如下:
SmartGrid控件使用教程(一)-前台脚本编程
SmartGrid控件使用教程(二)-前台脚本编程

一、SmartGrid数据导出


SmartGrid支持导出自身数据到Excel文件,可调用Export2Excel()方法,该方法有两个重载方法:
语法1:Export2Excel()
语法2:Export2Excel(string file)//参数file为文件名称,不带扩展名或路径
例1:
this.SmartGrid1.Export2Excel();

例2:
this.SmartGrid1.Export2Excel(“Task”);

二、保存SmartGrid数据到数据库


SmartGrid的DataSource属性用来存取或设置数据源。
注意:在后台将SmartGrid的数据源转为化DataTable后,可以根据DataRow的DataRowState值来判断该行数据的是用户新增的,还是用户修改的,还是用户删除的。再根据用户的动作来构造sql。(当然,项目有项目的规则,这里我们仅是阐述功能。)
示例:
protected void btnSave_Click(object sender, EventArgs e)
{
StringBuilder updateCommandString = new StringBuilder();
DataTable dtSource = this.SmartGrid1.DataSource as DataTable;
DataTable dt = dtSource.GetChanges();
if (dt != null && dt.Rows.Count  > 0)
{
foreach (DataRow dr in dt.Rows)
{
updateCommandString.Append(" ");
switch (dr.RowState.ToString())
{
case "Unchanged"://未作改变(使用GetChanges时不可能会满足该条件)
    break;
case "Added"://新增
    updateCommandString.Append("insert into table1(fields)");
    updateCommandString.Append(" values('" + dr["fields"].ToString() + "'");
    break;
case "Modified"://修改
    updateCommandString.Append("update table1 set ");
    updateCommandString.Append("fields = '" + dr["fields"].ToString() + "',");
    updateCommandString.Append(" where ID = '" + dr["ID"].ToString() + "'");
    break;
case "Deleted"://删除                            
    updateCommandString.Append("delete table1 where ID = '" + dr["ID",DataRowVersion.Original].ToString() + "'");
    break;
default:
    break;
}
}
if (updateCommandString.Length  > 0)
{
using (SqlConnection currentConn = new SqlConnection(_connectionstring))
{
currentConn.Open();
SqlCommand currentCmd = new SqlCommand();
currentCmd.CommandType = CommandType.Text;
currentCmd.CommandText = updateCommandString.ToString();
currentCmd.Connection = currentConn;
currentCmd.ExecuteNonQuery();
currentConn.Close();
}
}
}
}
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 52+80=? 的结果(结果是:132)
结  果: