2014-07-16 61 views
0

單擊Grid1後,當我點擊某個項目時,我想用Grid2中的一列中的數字填充TextBox。現在,如果我點擊Grid1中的一個項目,它將運行一個將數據填充到Grid2的過程。下面是一個附帶圖片的當前功能的示例,我點擊Grid1中的一個項目,它有3個結果,我的文本框仍然會顯示爲空的文本框。然後我單擊Grid1中的另一個項目,現在我的文本框將顯示之前單擊項目的3個結果。在Grid1中選擇一個項目後,如何在我的文本框中顯示正確的數字。使用RadGrid中的數據填充文本框

我已經嘗試了一些不同的方法,包括:

 protected override void OnPreRender(EventArgs e) 
    { 
     base.OnPreRender(e); 
     divDetails.Visible = true; 
     RadTextBox1.Text = ""; 
     for (int i = 0; i < Grid_Product_List_Details.Items.Count; i++) 
     { 
      RadTextBox1.Text += Grid_Product_List_Details.Items[i].GetDataKeyValue("number").ToString() + "\n"; 
     } 
    } 

和:

protected void Grid_Product_List_Details_PreRender(object sender, EventArgs e) 
{ 
    RadGrid grid = (RadGrid)sender; 

    if (grid.Items.Count > 0) 
     { 
      RadTextBox1.Text = ""; 
     } 

    for (int i = 0; i < grid.Items.Count; i++) 
     { 

      RadTextBox1.Text += grid.Items[i].GetDataKeyValue("number").ToString() + "\n"; 
     } 
    RadTextBox1.DataBind(); 

} 

這:

protected void Grid_Product_List_Header_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    RadTextBox1.Text = ""; 
    for (int i = 0; i < Grid_Product_List_Details.Items.Count; i++) 
    { 

     RadTextBox1.Text += Grid_Product_List_Details.Items[i].GetDataKeyValue("number").ToString() + "\n"; 
    }  
} 

但那些不工作。有什麼建議麼?

RadGrid Sample Picture

回答

0

我最終創建了一個過程,在單擊項目後填充文本框,以顯示最近的數據。

0

試圖改變你的代碼一點點。

RadTextBox1.Text =「」;

的foreach(GridDataItem的DataItem在Grid_Product_List_Details.Items)

{

RadTextBox1.Text += dataItem.GetDataKeyValue("number").ToString() + "\n"; 

}

RadTextBox1.DataBind();

這應該工作,雖然我懷疑你以前的代碼也應該工作。

0

嘗試第二個網格的ItemDataBound事件。您將可以訪問其所有數據,以便將其放入RadTextBox。我懷疑你在第一個的SelectedIndexChanged的第二個網格中提供了一個數據源,所以它的Rebind()方法應該被調用,然後你會得到它的每一行的ItemDataBound。

另外,如果您使用的是AJAX - 禁用它。部分渲染可能導致某些內容無法正確更新。如果事情在完整回傳中正常工作,請檢查回覆並查看爲什麼文本框未包含在第一個請求中,以便您可以知道如何調整AJAX設置。