0

我在网格视图中遇到了一个问题,基本上我想要实现的目标如下:我有一个网格视图,其中我的第一列是一个链接按钮,我必须设置一个条件,其中我的第二列的值被获取并且是输入到 ac# 方法,用于填充我需要分配到我的第一列的值。

我正在尝试下面的代码,但是当我查看我的网格时,它将第一列的值显示为空白。页面:

<asp:TemplateField HeaderText="FileName" ItemStyle-HorizontalAlign="Center"> 
<ItemTemplate>
<asp:LinkButton ID="btn"  runat="server" CommandName="Click"/>
</ItemTemplate> 
</asp:TemplateField>

aspx.cs

if (e.Row.RowType == DataControlRowType.DataRow)
{
int EmpiD = Int32.Parse(e.Row.Cells[2].Text);
DataSet EmpIDDs = GetEMP.getValue(EmpiD);
DataRow EmpRow = EmpIDDs.Tables[0].Rows[0];
e.Row.Cells[0].Text = EmpRow[3].ToString();
}

如果您有任何解决方案,请帮助我

4

2 回答 2

1

当我使用上面的代码时,网格在我的第一列中没有显示任何值

你说LinkButton 是在第一个TemplateField,那么你不能设置Text单元格的属性。您需要使用FindControl来获取对您的LinkButton.

LinkButton btn = (LinkButton)e.Row.FindControl("btn");
int EmpiD = Int32.Parse(e.Row.Cells[2].Text);
DataSet EmpIDDs = GetEMP.getValue(EmpiD);
DataRow EmpRow = EmpIDDs.Tables[0].Rows[0];
btn.Text = EmpRow[3].ToString();

假设您的代码的其余部分是正确的,例如第三列是 aBoundField并且包含一个整数,这样就e.Row.Cells[2] 可以了。

我不确定您是否熟悉调试器。

调试教程: http: //www.dotnetperls.com/debugging

于 2012-10-09T11:22:54.660 回答
0

第一,我会得到你绑定的数据项,而不是单元格的文本。

2,您必须使用查找控件并将LinkBut​​ton的文本属性设置为单元格的文本。

if (args.Row.RowType == DataControlRowType.DataRow)
{
YourObject dataObj = args.Row.DataItem as YourObj;
LinkButton but = args.Row.FindControl("linkButtonId") as LinkBUtton;
if(but != null)
{
but.Text = dataObj.SomePropertyYouWantToUse;
}
}
于 2012-10-09T11:26:31.810 回答