GridView里使用 DropDownList 更新数据列,不需要写一句代码
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
2
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
3
![](http://www.svnhost.cn/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.svnhost.cn/Images/OutliningIndicators/ContractedBlock.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
5
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
6
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
7
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
8
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
9
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
10
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
11
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
12
![](https://i-blog.csdnimg.cn/blog_migrate/deee14576b09937519ebe4d670d91b54.png)
整段代码如下
1< asp:GridView ID ="GridView1" runat ="server" Width ="100%" AllowPaging ="True" AllowSorting ="True"
2AutoGenerateColumns ="False" DataKeyNames ="id" DataSourceID ="SqlDataSource1" >
3< Columns >
4< asp:CommandField ShowDeleteButton ="True" ShowEditButton ="True" />
5< asp:BoundField DataField ="id" HeaderText ="id" InsertVisible ="False" ReadOnly ="True"
6SortExpression ="id" />
7< asp:BoundField DataField ="typename" HeaderText ="名称" SortExpression ="typename" />
8< asp:TemplateField >
9< ItemTemplate >
10<% ... #Eval("status").ToString()=="0"?"正常":"屏蔽" %>
11</ ItemTemplate >
12< EditItemTemplate >
13< asp:DropDownList ID ="status" SelectedValue ='<%#Bind("status") % > ' runat="server">
14< asp:ListItem Value ="0" > 正常 </ asp:ListItem >
15< asp:ListItem Value ="-1" > 屏蔽 </ asp:ListItem >
16</ asp:DropDownList >
17![]()
18</ EditItemTemplate >
19</ asp:TemplateField >
20![]()
21< asp:BoundField DataField ="remark" HeaderText ="备注" SortExpression ="remark" />
22</ Columns >
23</ asp:GridView >
24< asp:SqlDataSource ID ="SqlDataSource1" runat ="server" ConnectionString ="<%$ ConnectionStrings:db %>" DeleteCommand ="DELETE FROM [t_NewsType] WHERE [id] = @id"
25InsertCommand ="INSERT INTO [t_NewsType] ([typename], [status], [remark]) VALUES (@typename, @status, @remark)"
26SelectCommand ="SELECT * FROM [t_NewsType] where pid=@pid"
27UpdateCommand ="UPDATE [t_NewsType] SET [typename] = @typename, [status] = @status, [remark] = @remark WHERE [id] = @id" >
28< SelectParameters >
29< asp:QueryStringParameter DefaultValue ="0" Name ="pid" Type ="int32" />
30</ SelectParameters >
31< DeleteParameters >
32< asp:Parameter Name ="id" Type ="Int32" />
33</ DeleteParameters >
34< UpdateParameters >
35< asp:Parameter Name ="typename" Type ="String" />
36< asp:Parameter Name ="status" Type ="Int32" />
37< asp:Parameter Name ="remark" Type ="String" />
38< asp:Parameter Name ="id" Type ="Int32" />
39</ UpdateParameters >
40< InsertParameters >
41< asp:Parameter Name ="typename" Type ="String" />
42< asp:Parameter Name ="status" Type ="Int32" />
43< asp:Parameter Name ="remark" Type ="String" />
44</ InsertParameters >
45</ asp:SqlDataSource >
46![]()
47![]()
注意, <asp:DropDownList ID="status" SelectedValue='<%#Bind("status") %>' runat="server">
这里是关键,SelectedValue='<%#Bind("status") %>',要使用bind,我曾经用 <%#eval("status") %>一直在调试,在update的时候就是找不到数据,我就觉得奇怪了,以前都这么写过的,没问题的,去网上搜索,网上大部分是要在cs里写GridView事件捕捉这个控件的。而这里讲的方法不需一句代码。呵呵
ps:浪费我半个多小时时间调试出来,气愤的很,所以共享出来大家分享,避免大家再浪费半个多小时。