1

私はasp.netを初めて使用し、文法の間違いをお詫びします。

テーブルに3つのフィールド、、、がnameありageますcreated_date。グリッドビューを使用して、Webフォームのすべてのフィールドを表示しました。後で、command列を追加して、それをテンプレートフィールドに変換しました。

に基づいて編集ボタンを無効にする必要がありますcreated_date。つまりif created_date + 5 > sysdate 、編集ボタンを無効にする必要があります。

これどうやってするの?

4

2 に答える 2

0

asp.netボタンの場合、このようなものでうまくいく可能性があります

<asp:Button ID="Edit" runat="server" Text="Edit" ... 
    Enabled='<%# ((DateTime)Eval("created_date")).AddDays(5) > DateTime.Now ? false : true %>'/>
于 2012-07-03T20:21:39.117 に答える
0

コードbehineにこのコードを追加して、グリッドビューのRowDataBoundイベントを実装できます。

protected void gv_RowDataBound(object sender, GridViewRowEventArgs  e)
{
    // check if this row is on the edit state
    if (e.Row.RowState == DataControlRowState.Edit)
    {
        // get date_created from bind
        DateTime date_created = Convert.ToDateTime(DataBinder.Eval(e.Row.DataItem, "date_created"));

        // check if from this date more 5 days if greather than now
        if(date_created.AddDays(5) > DateTime.Now)
        {
            // disable button
            ((Button) e.Row.FindControl("btnEdit")).Enabled = false;
        }
    }
}

また、asp.netサーバータグでは、gridviewタグでこのイベントを参照できます。

<asp:GridView ID="gv" runat="server" OnRowDataBound="gv_RowDataBound">
...
</asp:GridView>
于 2012-07-03T20:25:41.643 に答える