C# 用RadGrid中的数据填充文本框

C# 用RadGrid中的数据填充文本框,c#,asp.net,telerik,telerik-grid,C#,Asp.net,Telerik,Telerik Grid,当我点击一个项目时,我想在点击Grid1后用Grid2列中的数字填充我的文本框。现在,如果我单击Grid1中的一个项目,它将运行一个过程,用数据填充Grid2。下面是一个带有图片的当前功能示例,我单击Grid1中的一个项目,它有3个结果,我的文本框仍将显示为空文本框。然后我单击Grid1中的另一个项目,现在我的文本框将显示以前单击的项目的3个结果。在Grid1中选择项目后,如何在文本框中显示正确的数字 我尝试了几种不同的方法,包括: protected override void

当我点击一个项目时,我想在点击Grid1后用Grid2列中的数字填充我的文本框。现在,如果我单击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 override void OnPreRender(事件参数e)
{
基于预渲染(e);
divDetails.Visible=true;
RadTextBox1.Text=“”;
对于(int i=0;i
以及:

protectedvoid Grid\u Product\u List\u Details\u PreRender(对象发送方,事件参数e)
{
RadGrid grid=(RadGrid)发送方;
如果(grid.Items.Count>0)
{
RadTextBox1.Text=“”;
}
对于(int i=0;i
这是:

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";
    }    
}
protectedvoid Grid\u Product\u List\u Header\u SelectedIndexChanged(对象发送方,事件参数e)
{
RadTextBox1.Text=“”;
对于(int i=0;i
但这些都不起作用。有什么建议吗


尝试稍微更改代码

RadTextBox1.Text=“”

foreach(Grid\u Product\u List\u Details.Items中的GridDataItem数据项)

{

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

RadTextBox1.DataBind()


虽然我怀疑您以前的代码也应该可以工作,但这应该可以工作。

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

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

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

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