簡體   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