星期一, 1月 30, 2006

VS2005 Formview如何加入當前日期

這個過年努力地在家與ASP.Net奮鬥,參考資料不多還真是困擾啊~~閒話不多說,這次來說說FormView。
VS2005的FormView提供程式設計師快速方面的資料輸入樣版,而且比DetailView靈活得多。因為想要做個簡單的CMS,必備的欄位不外乎id, author, title, content, date。author可以用sqldatasource的insertquery來加入profile參數,因此這不困難。那如何加入日期呢?天真的我立刻想:那還不容易?一樣在sqldatabase的query塞入預設值不就好了?結果試了半天,單引號、雙引號、單引號加雙引號全試過了,失敗!山不轉路轉,那我在sqldatabase的iteminserting中加入以下的程式碼,失敗!e.Values("r_post") = DateTime.Now; 將insertpapameter的值塞入,失敗! sqldatasource1.InsertCommand.Parameters("@r_post").Value = datetime.now;換個方法,在Formview中加入calendar1,然後用findcontrol指定值,塞入,失敗!
FormView1.FindControl("calendar1").selectedDateTime = DateTime.Now;可是我看了半天,這段應該沒問題,怎麼會說calendar找不到selectedDatetime這個事件?經過千辛萬苦地翻找MSDN和ASP.Net線上資料,終於給我試出來了:
protected void FormView1_ItemInserting(object sender, FormViewInsertEventArgs e)
{
Calendar c = FormView1.FindControl("Calendar1") as Calendar;c.Visible = false;
c.SelectedDate = DateTime.Now;
}
雖然應該還有更精簡地作法,但是現在我沒力氣去嘗試了......

20060622補遺
SqlDataSource1.InsertParameters["date"].DefaultValue=DateTime.Now.ToString();

沒有留言: