2011-10-06 61 views
0

我有一個RadGrid綁定到SqlDataSource。所有項目始終處於編輯模式。在顯示之前修改單元格值

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"; 
} 

它不起作用。我怎麼能這樣做,所以它會工作?

回答

3

我試圖讓它在grid prerender而不是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

在prerender和rebinding中設置editindexes不是一個好習慣。當你這樣做時,你會消除你在其他任何地方所做的所有更改,因爲生命週期是:init,load,control events,prerender。如果您始終以所有行的編輯模式工作,最好監聽RadGrid.DataBinding,設置編輯索引,然後在綁定時更新UI,而無需任何額外的工作或附加綁定。

protected void grid_databinding(..) { 
    for (int i = 0; i < RadGPozycje.PageSize; i++) 
     { 
      RadGPozycje.EditIndexes.Add(i); 
     } 
} 
+0

謝謝你的回答,這將有助於提高我的申請;雖然它不是我的問題的答案。 – Zaphood

相關問題