0

グリッドビューの「startdate」列の1つで、ユーザーが正しい権限を持っている場合、編集アイコンを追加してカレンダーを開き、ユーザーが日付を編集できるようにします。

列に画像を追加するための次のコードがありますが、日付の後に画像を追加するのではなく、日付を置き換えています。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (System.Web.Security.Roles.IsUserInRole(Security.GetUserName(true, true), "UpdateStartDate"))
        {
          HyperLink hl = new HyperLink();
          // hl.Text = e.Row.Cells[6].Text;
          hl.ImageUrl = "../images/pencil.gif";

          e.Row.Cells[6].Controls.Add(hl);
        }
    }
}

グリッドビュー列

<asp:BoundField HeaderText="Start Date" DataField="start_dt" DataFormatString="{0:d}" SortExpression="start_dt" ReadOnly="true" /> 
4

2 に答える 2

2

私の意見では、反対のアプローチを使用することをお勧めします。ユーザーが適切な権限を持っている場合は編集リンクを表示せず、そうでない場合はリンクを非表示にします。日付値を含むテキスト ボックスの横に HyperLink コントロールを追加し、GridView1_RowDataBoundメソッドで条件付きで非表示にします。

于 2012-10-19T03:51:50.393 に答える
0

protected void GridView1_RowDataBound(オブジェクト送信者、GridViewRowEventArgs e) {

if (e.Row.RowType == DataControlRowType.DataRow)
{
    if (System.Web.Security.Roles.IsUserInRole(Security.GetUserName(true, true), "UpdateStartDate"))
    {
      HyperLink hl = e.Row.find("h1")
      // hl.Text = e.Row.Cells[6].Text;
      hl.ImageUrl = "../images/pencil.gif";
      h1.visible=true;

    }
    else
    {
      HyperLink hl = e.Row.find("h1")
      h1.visible=false;
     }
}

}

デザイン自体にハイパーリンクを追加し、データバインドされた行の可視性を制御すると思います

于 2012-10-19T04:31:38.607 に答える