日期:2014-05-18  浏览次数:20406 次

gridview编辑更新时,添加一个dropdownlist,如何把ddl的text和value都更新?
<asp:TemplateField   HeaderText= "所属分类 "   SortExpression= "ClassName ">
                                        <EditItemTemplate>
                                                <asp:DropDownList   ID= "ClassNameDDL "   runat= "server "   DataSourceID= "ObjectDataSource2 "   DataTextField= "ClassName "   DataValueField= "ID "   SelectedValue= ' <%#   Bind( "ClassID ")   %> '>
                                                </asp:DropDownList>
                                        </EditItemTemplate>
                                        <ItemTemplate>
                                                <asp:Label   ID= "Label3 "   runat= "server "   Text= ' <%#   Bind( "ClassName ")   %> '> </asp:Label>
                                        </ItemTemplate>
                                </asp:TemplateField>

                <asp:ObjectDataSource   ID= "ObjectDataSource1 "   runat= "server "   SelectMethod= "GetProduct_Info "   TypeName= "GetInformation "   UpdateMethod= "UpdateSimpleData ">
                        <UpdateParameters>
                              <asp:Parameter   Name= "ClassName "   Type= "String "   />
                              <asp:Parameter   Name= "ClassID "   Type= "Int32 "   />
                        </UpdateParameters>
                </asp:ObjectDataSource>

ddl的数据源我已经绑定好了,编辑时可以看到ddl的数据,但是update却没有反映,也没有提示错误,update语句是没有问题的。我在奇怪SelectedValue只绑定了 <%#   Bind( "ClassID "),最多update也只是update到ddl的value,那ddl的text呢?要如何把ddl的text和value两个都更新?

------解决方案--------------------
DropDownList的编辑Bindings中,可以绑定SelectedValue,这个是和外键表(也就是GridView)相关的。
你写得那个绑定是绑定主键表(也就是填充DropDownList)的。

这两个结合。
------解决方案--------------------
Value一般放主键,Text是给用户看的