GridView使用一些记录

现在有个项目开始使用ASP.NET 2.0开发,在开发过程中关于GridView的使用的一些零星的记录
1.TemplateField中的绑定

<asp:TemplateField>
                        
<ItemTemplate><%Eval("OCompany.Name"%></ItemTemplate>
                    
</asp:TemplateField>

2.通过CheckBox得到选择行的主健值(GridView支持多主健)
        private string GetSelectId()
        
{
            
//EnsureChildControls();
            GridView gvlist1 = (GridView)this.Controls[0].FindControl("gvlist");

            
int icount = gvlist1.Rows.Count;

            
string id = string.Empty;

            
for (int i = 0; i < gvlist1.Rows.Count; i++)
            
{
                CheckBox cb 
= (CheckBox)gvlist1.Rows[i].FindControl("cb_id");

                 
//得到选中行的信息
                if (cb.Checked == true)
                
{
                    DataKey dkr 
= gvlist1.DataKeys[i];

                    id 
= dkr.Value.ToString();
                }

            }


            
return id;
        }

3.动态创建TemplateField
private void TemplateColumn(GridView gvlist, string column, GridListAttribute att)
        
{
            TemplateField tf 
= new TemplateField();

            tf.HeaderText 
= att.HeaderText;
            tf.HeaderStyle.Width 
= Unit.Parse(att.Width);

            ColumnTemplate temp 
= new ColumnTemplate();

            temp.Column 
= att.Column;

            tf.ItemTemplate 
= temp;

            gvlist.Columns.Add(tf);
     
            
        }

ColumnTemplate类
public class ColumnTemplate : ITemplate
{
    
//第一个模板列 
    public void InstantiateIn(Control container)
    
{
        LiteralControl l 
= new LiteralControl();
        l.DataBinding 
+= new EventHandler(this.OnDataBinding);
        container.Controls.Add(l);
    }


    
public void OnDataBinding(object sender, EventArgs e)
    
{
        
            LiteralControl lt 
= (LiteralControl)sender;//LiteralControl发送绑定请求

            GridViewRow container 
= (GridViewRow)lt.NamingContainer;

            lt.Text 
= DataBinder.Eval(container.DataItem, column).ToString();
    }

}
 

posted @   福娃  阅读(925)  评论(2编辑  收藏  举报
编辑推荐:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
阅读排行:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· ShadowSql之.net sql拼写神器
· 使用MCP C# SDK开发MCP Server + Client
· 感觉程序员要被 AI 淘汰了?学什么才有机会?
· MQTT协议发布和订阅的实现,一步步带你实现发布订阅服务。
点击右上角即可分享
微信分享提示