Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以前做SmartClient相当于C/S结构的程序,使用GridView时将某一列隐藏设置其Visalbe为 false即可,今天做GridView时也是用这种思维进行处理的,结果TemplateField 中的ItemTemplate设置为false,客户端此列为空,细想应该是在服务端此列直接没有处理。思考研究使用以下方法,使用层将需隐藏的数据屏敝而PostBack处理时,可以通过反射寻到隐藏数据:


<div>
    
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="fld_Name"
         EmptyDataText
="没有可显示的数据记录。" OnRowDataBound="GridView1_RowDataBound">
        
<Columns>
        
<asp:TemplateField>
        
<ItemTemplate><asp:CheckBox ID="cBoxChecked" runat="server" /></ItemTemplate>
        
</asp:TemplateField>
        
<asp:TemplateField>
        
<ItemTemplate>
        
<div style="visibility:hidden; height:0px; width:0px;">
        
<asp:TextBox id="txtID" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"fld_ID")%>'/>
        
<asp:TextBox id="txtChecked" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"fld_IsSelected")%>' />
        
</div>
        
<%#DataBinder.Eval(Container.DataItem,"fld_Name")%>
        
</ItemTemplate>
        
</asp:TemplateField>
        
</Columns>
    
</asp:GridView>
    
<asp:SqlDataSource ID="SDSoureOrderCustom" runat="server" SelectCommand="select * from T_orderschema">
    
</asp:SqlDataSource>
</div>
<div>
<asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="更新选中" />
</div

 

posted on 2009-03-26 16:15  Robin99  阅读(428)  评论(1编辑  收藏  举报