我有一个绑定到SqlDataSource的RadGrid。所有项目始终处于编辑模式。
protected void RadGPozycje_PreRender(object sender, EventArgs e)
{
for (int i = 0; i < RadGPozycje.PageSize; i++)
{
RadGPozycje.EditIndexes.Add(i);
}
RadGPozycje.Rebind();
}
绑定时,当数据库中的值等于-1时,我的单元格“Vat”应将值更改为“zw”。我试着这样做:
private void RadGPozycje_ItemDataBound(object sender, GridItemEventArgs e)
{
GridDataItem item;
item = e.Item as GridDataItem;
if (item["Vat"].Text == "-1")
item["Vat"].Text = "zw";
}
它不起作用。我怎么能这样做才能起作用呢?
答案 0 :(得分:3)
我试图让它在网格预渲染中工作而不是itemdatabound。
protected void RadGrid1_PreRender(object sender, EventArgs e)
{
foreach (GridDataItem it in RadGrid1.EditItems)
{
TextBox sv = (TextBox)it["POZ_Stawka_VAT"].Controls[0];
if (sv.Text=="-1")
sv.Text = "zw";
}
}
protected void RadGrid1_DataBinding(object sender, EventArgs e)
{
for (int i = 0; i < RadGrid1.PageSize; i++)
{
RadGrid1.EditIndexes.Add(i);
}
}
答案 1 :(得分:1)
在预渲染和重新绑定中设置editindex不是一个好习惯。当你这样做时,你会消除你在任何其他点所做的所有更改,因为生命周期是:init,load,control events,prerender。如果您始终在所有行的编辑模式下工作,最好是监听RadGrid.DataBinding,设置编辑索引,然后在绑定时,UI将更新而无需任何额外的工作或其他绑定。
protected void grid_databinding(..) {
for (int i = 0; i < RadGPozycje.PageSize; i++)
{
RadGPozycje.EditIndexes.Add(i);
}
}