繁体   English   中英

使动态创建的Gridview列为只读

[英]Making dynamically created Gridview columns read only

 var a = from employee in entities.Employees
         from ticket in employee.EmployeeTicket
         select new {ID=employee.ID,Name=employee.Name,TicketNo=ticket.TicketNo,
         Subject=ticket.Subject,Date=ticket.Date,State=ticket.State.Name};//Columns

GridViewTicketHistory.DataSource = a;//Datasource is Linq to entity
GridViewTicketHistory.DataBind();

Gridview具有Linq到实体数据源。 我想使那些动态创建的列(ID,名称,TicketNo,Subject,Date,State) 只读。我试图使用列索引GridViewTicketHistory.Columns [2]强制转换为rowdatabound事件中的数据绑定,然后使其变为只读。索引超出范围,这意味着它看不到具有该索引的任何列。是否有任何方法可以选择特定的列并将其设置为只读 。如果我需要使用数据表,如何对linq to entity进行处理?

   <asp:BoundField DataField="ID" HeaderText="ID"/>
   <asp:BoundField DataField="Name" HeaderText="Name"/>
   <asp:BoundField DataField="TicketNo" HeaderText="TicketNo"/>
   <asp:BoundField DataField=" Subject" HeaderText="Subject"/>
   <asp:BoundField DataField="Date" HeaderText="Date"/>
 <asp:BoundField DataField="StateName" HeaderText="StateName"/>

不要输入ID = employee.ID这样的名称。

select new {ID=employee.ID,Name=employee.Name,TicketNo=ticket.TicketNo,
         Subject=ticket.Subject,Date=ticket.Date,State=ticket.State.Name};

成为;

     select new{employee.ID,employee.Name,ticket.TicketNo,ticket.Subject,
ticket.Date,ticket.State.StateName};

如果最后一个变量相同,它也不会编译。employee.Name和ticket.State.Name重命名数据库中的表列并重新创建实体模型。我做到了,并将外键列更改为StateName。现在,您可以使databoundfield列读取只要。 ((BoundField)GridView1.Columns[0]).ReadOnly = true; 使ID列为只读...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM