客户端事件因本站前面有讲过,所以这里就不再讲了,链接如下:
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();
}
}
}
}