单击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";
}
}
但那些不起作用。有什么建议吗?
答案 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设置。