[英]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.