0

グリッド ビューで問題に直面しています。基本的に達成しようとしているのは以下のとおりです。最初の列がリンク ボタンであるグリッド ビューがあり、2 番目の列の値が取得される条件を設定する必要があります。最初の列に割り当てる必要がある値を入力するための ac# メソッドへの入力。

以下のコードを試していますが、グリッドを表示すると、最初の列の値が空白として表示されます。Aspx ページ:

<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を使用する必要があります。FindControlLinkButton

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();

コードの残りの部分が正しいと仮定すると、たとえば、3 番目の列が でBoundFieldあり、整数が含まれているため、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 に答える