我已經搜索了這個,答案似乎不起作用。我有下面的函數的C#代碼隱藏:更改DataGrid中顯示字段的順序
public void Show_Data2(string LPI_ID)
{
OracleConnection conn = GetConnection();
try
{
{
//conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnCST"].ToString();
OracleCommand cmd3 = new OracleCommand();
cmd3.CommandType = CommandType.StoredProcedure;
cmd3.CommandText = "SP_LPI_REGISTER_CLAIM_DETAILS";
cmd3.Connection = conn;
cmd3.Parameters.Add("vLPI_ID", OracleType.VarChar, 20).Value = LPI_ID;
cmd3.Parameters.Add("vClaimDetails", OracleType.Cursor).Direction = ParameterDirection.Output;
//connection2.Open();
var SearchAdapter = new OracleDataAdapter(cmd3);
var ds = new DataSet();
SearchAdapter.Fill(ds);
DataGrid_ClaimDetail.DataSource = ds;
DataGrid_ClaimDetail.DataBind();
// The problem happens here:
DataGrid_ClaimDetail.Columns["Item"].DisplayIndex = 0;
DataGrid_ClaimDetail.Columns["dt"].DisplayIndex = 1;
DataGrid_ClaimDetail.Columns["UserName"].DisplayIndex = 2;
if (DataGrid_ClaimDetail.Items.Count < 1)
{
lblEmpty2.Visible = true;
lblEmpty2.Text = "There is no data to display";
}
else
{
lblEmpty2.Visible = false;
}
conn.Close();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
conn.Close();
}
}
我得在asp.net以下的DataGrid:
<div id="divGrid2" style='width:920px; height:230px; overflow:auto;'>
<asp:DataGrid ID="DataGrid_ClaimDetail" runat="server" Visible="true"
AllowPaging="True" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="true"
OnCancelCommand="DataGrid_ClaimDetail_CancelCommand"
OnUpdateCommand="DataGrid_ClaimDetail_UpdateCommand"
OnEditCommand="DataGrid_ClaimDetail_EditCommand">
<AlternatingItemStyle Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<EditItemStyle BackColor="#999999" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<PagerStyle BackColor="#5D7B9D" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="False" Font-Italic="False"
Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<Columns>
<asp:EditCommandColumn ButtonType="PushButton" CancelText="Cancel"
EditText="Select" UpdateText="Update"></asp:EditCommandColumn>
</Columns>
</asp:DataGrid>
<asp:Label ID="lblEmpty2" runat="server" Visible="false" Style="font-weight:bold; font-size:large;"></asp:Label>
</div>
如果我拿出在C#3條的DisplayIndex線代碼,它工作正常,但我的字段不是我想要的順序。
如果我把這些線回,我得到的每一行代碼的錯誤:
無法從「字符串」到「廉政」
每個字段名稱的轉換加下劃線。
任何人都可以看到我可能做錯了什麼,或者告訴我如何能夠重新排序GridView中的字段?
關於第一部分; **'DataGridColumn'不包含'DisplayIndex'的定義,並且沒有找到接受'DataGridColumn'類型的第一個參數的擴展方法'DisplayIndex'(您是否缺少using指令或程序集引用?)** –
@JohnyBones嗯,我沒有真正檢查代碼,假設這種屬性存在。在這種情況下,您可能需要通過從「Columns」集合中刪除/添加列來手動重新排序列。當我有時間時,我可能會嘗試獲得一個工作原型,可能明天。 –
經過一番Google搜索之後,似乎可能這隻適用於Windows.Forms,而我在Intranet網站上使用它? –