GridView动态生成模板列!!!!!!!急急急!!!!!!!!!

huguosheng_89412 2009-04-30 06:11:33
效果:批量修改GridView时对某些要修改的数据,直接在网格里修改,点击按钮保存全部修改。
保存时循环每一条记录保存全部修改。
...全文
208 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huguosheng_89412 2009-05-04
  • 打赏
  • 举报
回复
“冲浪小子”的gridview是写死的,我要的是自动生成模板列
比如用户选择 用户名、姓名,在gridview上面只显示选择的两个
如果用户选择了用户名、姓名、性别、部门,在gridview上面要显示4个,并且都要生成模板列来进行批量修改
不知道是否明白我的意思?
中年秃头大叔 2009-05-01
  • 打赏
  • 举报
回复
前台代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="873px">
<Columns>
<asp:TemplateField HeaderText="ID">

<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="用户名">

<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("uname") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="性别">

<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("sex") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="年龄">

<ItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("age") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="电话">

<ItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("tel") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="地址">

<ItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Bind("addr") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

</div>
<asp:Button ID="Button1" runat="server" Text="批量更新" OnClick="Button1_Click" />

-------------------------------
后台代码:
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conn"]);
protected void Page_Load(object sender, EventArgs e)
...{
if (!this.IsPostBack)
...{
this.Bind();
}
}
private void Bind()
...{
try
...{
SqlDataAdapter da = new SqlDataAdapter("select * from userinfo",conn);
DataSet ds = new DataSet();
da.Fill(ds, "ff");
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
catch (Exception Err)
...{
throw Err;
}
finally
...{

}
}
protected void Button1_Click(object sender, EventArgs e)
...{
int k = 0;
foreach (GridViewRow gv in GridView1.Rows)
...{
int id = int.Parse(((Label)gv.FindControl("Label1")).Text);
string username = ((TextBox)gv.FindControl("TextBox2")).Text;
string sex = ((TextBox)gv.FindControl("TextBox3")).Text;
int age = int.Parse(((TextBox)gv.FindControl("TextBox4")).Text);
string tel = ((TextBox)gv.FindControl("TextBox5")).Text;
string addr = ((TextBox)gv.FindControl("TextBox6")).Text;
string sql = "update userinfo set uname='" + username + "',sex='" + sex + "',age=" + age + ",tel='" + tel + "',addr='" + addr + "' where id=" + id + "";
SqlCommand cmd = new SqlCommand(sql, conn);
if (conn.State == ConnectionState.Closed)
...{
conn.Open();
}
k = cmd.ExecuteNonQuery();
}
if (k > 0)
...{
Page.RegisterStartupScript("", "<script>alert('更新成功!');</script>");
}

}
皓月明 2009-05-01
  • 打赏
  • 举报
回复
遍历保存不就搞定
s1234567 2009-05-01
  • 打赏
  • 举报
回复
我看“冲浪小子”的方案应该可行,他肯定已经试验过了。
呵呵,这个很有用,省得零零碎碎地回发,而且与Winform中的操作方式是一致的。
他是把template模板中的label直接改成TextBox了,这样就不用进入“编辑”模板。
页面一加载,直接就从数据库向控件中填入数据,编辑后,统一回发,
并用普通方法从控件中提取各行的数据,更新到数据库。
我将来就用他的代码吧。楼主应该来结贴了。
deng520159 2009-05-01
  • 打赏
  • 举报
回复
楼主,我在想如果是在网格中采用默认的模板不是行的,只有给你模板的事件,循环修改数据源的所有列对应值了,
蔡袅 2009-05-01
  • 打赏
  • 举报
回复
我明白你的意思了。。
你的功能就像我们平时点 编辑一样每个需要修改的字段出现textbox,然后在里面修改,单击更新就提交数据库 并及时呈现
LZ 说的直接在网格里改是不可能的,,只能呈现textbox再修改~
陌上花花 2009-05-01
  • 打赏
  • 举报
回复
帮顶下了
happy664618843 2009-04-30
  • 打赏
  • 举报
回复
foreach(GrivdViewRow row in GridView1.Rows)
就可以了啊!
wuyq11 2009-04-30
  • 打赏
  • 举报
回复
遍历gridview每行数据,保存可以。
蓝海D鱼 2009-04-30
  • 打赏
  • 举报
回复
up
huguosheng_89412 2009-04-30
  • 打赏
  • 举报
回复
类似于他说的http://blog.163.com/jerry1979@126/blog/static/25179824200712310143769/
lsw_19880625 2009-04-30
  • 打赏
  • 举报
回复
你的描述有点问题吧? 再详细的说说吧!
zftow110 2009-04-30
  • 打赏
  • 举报
回复
没明白,帮顶

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧