您的位置:首页 > 其它

关于(webabcd兄的在GridView中插入新记录)的手动绑定数据做法

2007-04-18 14:57 417 查看
本人是菜鸟
看了webabcd兄的在GridView中插入新记录文章感觉非常好~但我不太喜欢用数据源控件绑定,所以自己做了一个自己的手动绑定数据的~开始遇到一个疑问就是找空白模版的控件ID的问题~后来在网上找到解决方法了,好把代码放出希望能帮助大家
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
void bind()
{
DataSet ds = new DataSet();
GridView1.DataSource = getData(ds);
GridView1.DataBind();
}
private static DataSet getData(DataSet ds)
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["lucaConnectionString"].ToString()))
{
SqlDataAdapter sda = new SqlDataAdapter("select * from jobs", con);
sda.Fill(ds);
return ds;
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "insert")
{
GridView1.DataSource = "";
GridView1.DataBind();
}
}

protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["lucaConnectionString"].ToString()))
{
//空白模版里的控件找法必须是这样的不知道为什么是这样希望高手指点
DetailsView d = GridView1.Controls[0].Controls[0].FindControl("DetailsView1") as DetailsView;
string desc = (d.Rows[0].Cells[1].Controls[0] as TextBox).Text;
int min_lvl = int.Parse((d.Rows[1].Cells[1].Controls[0] as TextBox).Text);
int max_lvl = int.Parse((d.Rows[2].Cells[1].Controls[0] as TextBox).Text);
string sql = "insert into jobs values(@desc,@min,@max)";
SqlCommand cmd = con.CreateCommand();
cmd.Parameters.Add("@desc", SqlDbType.VarChar).Value = desc;
cmd.Parameters.Add("@min", SqlDbType.Int).Value = min_lvl;
cmd.Parameters.Add("@max", SqlDbType.Int).Value = max_lvl;
cmd.CommandText = sql;
con.Open();
cmd.ExecuteNonQuery();
bind();
}

}
protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
if (!e.Cancel)
{
bind();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐