これを検索しましたが、その答えがうまくいかないようです。私は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で、以下のデータグリッドを持っている:
<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ラインを取る場合コード、それは正常に動作しますが、私のフィールドは私が望む順序ではありません。
私は後ろにそれらのラインを入れた場合、私はコードの各行にエラーが発生します。
は「INT」に「文字列」から変換することはできません
とフィールド名の各下線が引かれている。
誰かが私が間違っているのを見ることができますか、またはGridViewのフィールドをどのように並べ替えることができるか教えてください。
第1部に関しては、 ** 'DataGridColumn'に 'DisplayIndex'の定義が含まれておらず、 'DataGridColumn'タイプの最初の引数を受け入れる拡張メソッド 'DisplayIndex'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)** –
@JohnyBonesええ、私は実際にそのようなプロパティが存在すると仮定してコードをチェックしませんでした。そのような場合は、おそらく列を 'Columns'コレクションから削除/追加することによって列を手動で並べ替える必要があります。そして、私は時間があれば、おそらく明日、実用的なプロトタイプを手に入れようとします。 –
グーグルでは、イントラネットのWebサイトでこれを使用しているのに対し、これはWindows.Formsでしか動作しないようです。 –