웹 페이지에 gvRoute라는 데이터리스트가 있습니다. 이것은 원래 알파벳 순으로 정렬되어 있습니다.배열의 웹 페이지에서 데이터리스트를 다시 정렬하려고합니다.
OurOrder 배열에 저장된 값을 기준으로이 데이터 목록을 다시 정렬하는 방법을 살펴 보겠습니다. 기본적으로 OurOrder [x]는 x 위치 (원래 12)는 원래 데이터 목록의 5 행이어야한다고 말합니다. 이 순서는 이미 코드의 다른 곳에서 다양한 계산을 수행하여 얻은 것입니다.
gvRoute 데이터 목록으로 다시 가져 오는 데 문제가 있습니다. 나는 현재 찾고 있어요 코드는 다음과 같습니다 :
int FromHere = 0;
int TotalRows = gvRoute.Items.Count;
DataTable dt = new DataTable();
DataTable dtcache = (DataTable)Session["MyTable"];
DataRow DRTransfer = dtcache.NewRow();
for (int x = 0; x < TotalRows - 1; x++)
{
FromHere = OurOrder[x];
DRTransfer = dtcache.Rows[FromHere];
dt.ImportRow(DRTransfer);
}
gvRoute.DataSourceID = "";
gvRoute.DataSource = dt;
gvRoute.DataBind();
그래서 기본적으로 (노력)있어 여기에 일어나는 것은 우리가 다양한 기본값을 찾아 (우리는 등 필요한 행 수)와로 전송하는 새로운 datatables를 구축한다는 것입니다 뿐만 아니라 앞뒤로 물건을 전송하는 데 사용되는 DRTransfer 행이 있습니다.
그런 다음 각 행에 대해 gvRoute의 어느 행이 있어야하는지 DRTransfer에 넣은 다음 데이터 테이블 dt에 추가합니다.
일단 끝나면 datatable dt를 gvRoute 목록에 다시 바인딩하려고합니다.
현재 실제로 목록에 넣는 것 외에는 거의 모든 것을 관리하고 있다고 생각합니다. gvRoute 데이터리스트에는 다양한 필드가 포함되어 있으며, 현재이 필드가 존재하지 않는다고 불평하고 있습니다.
편집 - 그것은 던지고 오류가
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'PKID_Operation'.
PKID_Operation이 DataList에에서 발생하는 필드의 첫 번째 ...입니다.
편집 -리스트의 ASP 코드
<asp:DataList ID="gvRoute" runat="server" DataKeyField="PKID_Operation" DataSourceID="DSRoute" GridLines="Both" RepeatColumns="1">
<ItemTemplate>
<asp:Label ID="FKID_ContractLabel" runat="server" Text='<%# Eval("FKID_Contract") %>' Visible="False" />
<asp:Label ID="PKID_OperationLabel" runat="server" Text='<%# Eval("PKID_Operation") %>' Visible="False" />
<asp:CheckBox ID="chkSel" runat="server" />
<asp:Label ID="OperationOrderLabel" runat="server" Text='<%# Eval("OperationOrder") %>' />
<asp:Label ID="L1_NameLabel" runat="server" Text='<%# Eval("L1_Name") %>' />
-
<asp:Label ID="L2_NameLabel" runat="server" Text='<%# Eval("L2_Name") %>' />
-
<asp:Label ID="L3_NameLabel" runat="server" Text='<%# Eval("L3_Name") %>' />
<asp:Label ID="Operation_NameLabel" runat="server" Text='<%# Eval("Operation_Name") %>' />
-
<asp:Label ID="Team_NameLabel" runat="server" Text='<%# Eval("Team_Name") %>' />
(<asp:Label ID="PostcodeLabel" runat="server" Text='<%# Eval("Postcode") %>' />
)<asp:Label ID="EmptyLabel" runat="server" Text='<%# Eval("Empty") %>' Visible="False" />
(<asp:Label ID="Latitude" runat="server" Text='<%# Eval("Latitude") %>' />
,<asp:Label ID="Longitude" runat="server" Text='<%# Eval("Longitude") %>' />
)<asp:Label ID="GeoOrder" runat="server" Text='<%# Eval("GeoOrder") %>' Visible="False" />
<br />
</ItemTemplate>
</asp:DataList>
데이터 목록에는 레이블이 포함되어 있지만 열은 포함되지 않습니다. 코드를 업데이트했습니다. – user25730
흠.하지만 여전히 바인딩하려는 데이터 테이블에 열이 필요합니다. 내 제안을 시도 했습니까? – ForkandBeard
죄송합니다 - 훌륭하게 작동합니다. 나는 총을 조금씩 뛰어 넘고 있었지만, 라벨이 달린 데이터리스트뿐만 아니라 컬럼에서도 작동한다. 감사! – user25730