【发布时间】:2017-01-19 17:51:40
【问题描述】:
我已经搜索过这个,但答案似乎不起作用。我在 C# 代码隐藏中有以下函数:
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 中的字段?
【问题讨论】:
标签: c# asp.net datagrid code-behind