ここでは、gridview内に2linkbuttonsを持つテンプレートフィールドがあります。 はどうすればlnkbuttonsの一つは、私はテンプレートフィールドで2 linkbuttonsを使用して、これをやっているユーザ選択グリッドビューでリンクボタンを動的に非表示にする
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<table>
<tr>
<td align="center">
<asp:LinkButton ID="LinkButton1" runat="server" CommandName= "Publish" CommandArgument="<%# Container.DataItemIndex %>"></asp:LinkButton>
</td>
<<td align="center">
<asp:LinkButton ID="LinkButton2" runat="server" CommandName= "Block" HeaderText="Block" CommandArgument="<%# Container.DataItemIndex %>">Block</asp:LinkButton>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if(Status=="Posted")
{
LinkButton lbtn2 = (LinkButton)e.Row.FindControl("LinkButton2");
lbtn2.Visible = false;
}
if(Status=="Publish")
{
LinkButton lbtn1 = (LinkButton)e.Row.FindControl("LinkButton1");
lbtn1.Visible = false;
}
}
に応じて非表示にします。 Status == Postedの場合、LinkButton2を非表示にします。 ItemType == Publishedの場合、LinkButton1を非表示にします。
私はLinkButton lbtn2 = (LinkButton)e.Row.FindControl("LinkButton2");
lbtn2.Visible = false;
エラー...でエラーを取得しています唯一のLinkButtonコントロールを使用して、心とaspx.cs`
にコマンド名とcommandArgumentを設定していない
:オブジェクト参照に設定されていませんlnbt2.Visible = falseを指すインスタンス。
任意の手がかり、 おかげ 日
あなたが正しいです。コードをDataControlRowType.DataRowに移動しました。私は何もエラーは出ませんが、テンプレートフィールドアクションはLinkbuttonsなしで空です – Sun
@Sun:コードサンプルの "Status"とは何ですか?あなたが削除した変数を割り当てるコードがありますか?または、ステータスはデータバインドされるオブジェクトのプロパティですか?そのイベントハンドラにブレークポイントを設定してStatusの値を調べると、何が得られますか? –
ステータスはItemStatusです。私たちは投稿または公開できるアイテムを持っています。 – Sun