使用RadGrid中的数据填充文本框

时间:2014-07-16 16:41:13

标签: c# asp.net telerik telerik-grid

单击Grid1后,当我单击某个项目时,我想用Grid2中的列填充我的TextBox。现在,如果我点击Grid1中的某个项目,它将运行一个将为Grid2填充数据的过程。这是附加图片的当前功能的示例,我单击Grid1中的项目并且它有3个结果,我的文本框仍将显示为空文本框。然后我单击Grid1中的另一个项目,现在我的文本框将显示之前单击的项目的3个结果。在Grid1中选择项目后,如何在文本框中显示正确的数字。

我尝试过几种不同的方法,包括:

        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

3 个答案:

答案 0 :(得分:0)

尝试稍微更改一下代码。

  

RadTextBox1.Text =“”;

     

foreach(Grid_ProduItem dataItem in Grid_Product_List_Details.Items)

     

{

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

}

     

RadTextBox1.DataBind();

虽然我怀疑你的早期代码也应该有用,但这应该可行。

答案 1 :(得分:0)

我最终创建了一个程序,在单击某个项目后填充文本框,以便显示最新数据。

答案 2 :(得分:0)

尝试第二个网格的ItemDataBound事件。您将可以访问其所有数据,以便将其放入RadTextBox中。我怀疑你为第一个的SelectedIndexChanged中的第二个网格提供了一个数据源,所以应该调用它的Rebind()方法,然后你将为每个行触发ItemDataBound。

此外,如果您使用的是AJAX - 请将其禁用。部分渲染可能无法正确更新某些内容。如果完整的回发工作正常,请检查响应并查看第一个请求中未包含文本框的原因,以便了解如何调整AJAX设置。