简体   繁体   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 has Linq to entity data source. Gridview具有Linq到实体数据源。 I want to make those dynamically created columns(ID,Name,TicketNo,Subject,Date,State) read only ..I tried to cast using column index GridViewTicketHistory.Columns[2] to databound in rowdatabound event then making it read only .However index is out of range which means it doesnt see any column with that index.Is there any way to choosing specific column and make it read only .If i need to use datatable how can i do it for linq to entity? 我想使那些动态创建的列(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"/>

Dont give names like ID=employee.ID .Thus 不要输入ID = employee.ID这样的名称。

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

Becomes ; 成为;

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

Also it wont compile if last variable is same.. employee.Name and ticket.State.Name rename table column in database and recreate entity model.I did it and changed the foreign key column as StateName.Now you can make your databoundfield column read only. 如果最后一个变量相同,它也不会编译。employee.Name和ticket.State.Name重命名数据库中的表列并重新创建实体模型。我做到了,并将外键列更改为StateName。现在,您可以使databoundfield列读取只要。 ((BoundField)GridView1.Columns[0]).ReadOnly = true; makes ID column read only... 使ID列为只读...

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

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