0
vb.netのサブ見出しを付けてdatagridviewの行をグループ化する方法に問題があります。私は自分のdatagridviewに小見出しをつけたい。私はVB.NETには、このC#コードを変換してきましたが、何も起こりません:vb.netの小見出しでdatagridviewの行をグループ化する方法
private string subheading = "";
private bool createsub = false;
// This method will peek ahead in the datasource to determine whether the
next
// item will need a new subheading
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs
e)
{
switch (e.Item.ItemType)
{
case ListItemType.Header:
case ListItemType.AlternatingItem:
case ListItemType.Item:
DataTable dt = (DataTable)((DataGrid)sender).DataSource;
// header or Subheading column value will change in next row
if ((e.Item.ItemIndex == -1) ||
(e.Item.ItemIndex+1 < dt.Rows.Count &&
dt.Rows[e.Item.ItemIndex+1]["SubHeading"].ToString() !=
dt.Rows[e.Item.ItemIndex]["SubHeading"].ToString()))
{
// get next subheading value
subheading = dt.Rows[e.Item.ItemIndex+1]["SubHeading"].ToString();
createsub = true;
}
else
createsub = false;
break;
}
}
// This method will create a subheading row if needed
private void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
{
switch (e.Item.ItemType)
{
case ListItemType.AlternatingItem:
case ListItemType.Item:
if (createsub)
{
DataGrid dg = (DataGrid)sender;
TableCell tc = new TableCell();
tc.Controls.Add(new LiteralControl(subheading));
tc.ColumnSpan = e.Item.Cells.Count;
tc.Attributes.Add("align", "left");
tc.Font.Bold = true;
tc.BackColor = Color.FromArgb(220, 220, 220);
DataGridItem di =
new DataGridItem(e.Item.ItemIndex+1, 0, ListItemType.Item);
di.Cells.Add(tc);
Table t = (Table)dg.Controls[0];
t.Rows.Add(di);
}
break;
default:
break;
}
}
と追加情報については、このコードは同じ結果と:
private void SeparateRows(ref DataSet ds, string columnName)
{
int i = 0;
string prevsub = "";
while (i <= ds.Tables[0].Rows.Count - 1)
{
DataRow dr = ds.Tables[0].Rows[i];
// if category field value changes add a new row
if (dr["Category"].ToString() != prevsub)
{
prevsub = sub;
DataRow newrow = ds.Tables[0].NewRow();
newrow["Title"] = "SubHeading"; // sub heading flag
newrow[columnName] = dr[columnName]; // sub heading text
// add row and increment counter to accommodate new row
ds.Tables[0].Rows.InsertAt(newrow, i++);
}
i++;
}
}
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
switch (e.Item.ItemType)
{
case ListItemType.AlternatingItem:
case ListItemType.Item:
if (e.Item.Cells[1].Text.Equals("SubHeading"))
私は明らかにされてアップロードされたこの画像を開こう:
私は実際にこれを達成するいくつかの助けを必要としています。してください、助けてください。ありがとう
これはVB.NETですか? ;-) – muffi
DatagridはDatagridviewとは異なります –
ああ、申し訳ありません、そのASP.NETコードです。 vb.netコードでこれを行う方法は何ですか?それがあれば、親切に私といくつかのコードを共有してください。ありがとう – Diaval