Detay Tablo aradan satır silme
Detay tablo nesnesi özelliklerinde silme butonu sadece son satırı silmektedir. Ancak farklı yöntemlerle aradan kayıt sildirme işlemi gerçekleştirilebilir.
Silme butonuna tıklandığında bu işlemin gerçekleşebilmesi için; Detay tablonun RowDeleting event'ı üzerinde işlem sağlanmalıdır. Silme butonuna tıklandığında varsayılan silme işleminin iptali için (args.allow = false;) komutu kullanılmalıdır.
Aradan kayıt silebilmek için öncelikle detay tablo üzerinde bir seçim nesnesi (checkbox) gerekecektir. Seçili olanları datatable'a aktarıp aynı detay tablo tekrar bu datatable ile doldurulabilir.
using System.Web.UI.WebControls;
public void DetailsGrid3_RowDeleting(object sender, DetailsGridDeleteRowEventArgs args)
{
args.allow = false;
DataTable dt = new DataTable();
dt.Columns.Add("List1");
dt.Columns.Add("List1_Value");
dt.Columns.Add("List2");
dt.Columns.Add("List2_Value");
dt.Columns.Add("Text4");
for (int i = 0; i < DetailsGrid3.CurrentRowCount; i++)
{
if (!((CheckBox)DetailsGrid3.GetRowObject(i, "CheckBox3")).Checked)
{
DataRow dr = dt.NewRow();
dr["List1"] = ((DropDownList)DetailsGrid3.GetRowObject(i, "List1")).SelectedItem.Text;
dr["List1_Value"] = ((DropDownList)DetailsGrid3.GetRowObject(i, "List1")).SelectedItem.Value;
dr["List2"] = ((eBAComboBox)DetailsGrid3.GetRowObject(i, "List2")).Text;
dr["List2_Value"] = ((eBAComboBox)DetailsGrid3.GetRowObject(i, "List2")).Value;
dr["Text4"] = ((TextBox)DetailsGrid3.GetRowObject(i, "Text4")).Text;
dt.Rows.Add(dr);
}
}
DetailsGrid3.CurrentRowCount = 0;
for (int y = 0; y < dt.Rows.Count; y++)
{
DetailsGrid3.CurrentRowCount++;
((DropDownList)DetailsGrid3.GetRowObject(y, "List1")).SelectedItem.Text = dt.Rows[y]["List1"].ToString();
((DropDownList)DetailsGrid3.GetRowObject(y, "List1")).SelectedItem.Value = dt.Rows[y]["List1_Value"].ToString();
((eBAComboBox)DetailsGrid3.GetRowObject(y, "List2")).Text = dt.Rows[y]["List2"].ToString();
((eBAComboBox)DetailsGrid3.GetRowObject(y, "List2")).Value = dt.Rows[y]["List2_Value"].ToString();
((TextBox)DetailsGrid3.GetRowObject(y, "Text4")).Text = dt.Rows[y]["Text4"].ToString();
((CheckBox)DetailsGrid3.GetRowObject(y, "CheckBox3")).Checked = false;
}
}
NOT: 6.7.153 versiyonundan itibaren Detay tabloda aradan satır silme işleminde, detay tablodaki eBADropDownList nesnesine erişirken,
((DropDownList) dtg1.GetRowObject(i, "Liste1")).SelectedItem.Value
((DropDownList) dtg1.GetRowObject(i, "Liste1")).SelectedItem.Text
Kullanımı yerine,
((DropDownList) dtg1.GetRowObject(i, "Liste1")).SelectedValue
Yapısı kullanılmalıdır. Bu durumda eBADropDownList in _TEXT değerinin de tutulmasına gerek kalmayacaktır.