取得.Net 3.5 ListView 樣版內的欄位值方式
<asp:ListView ID="ListView1" runat="server" style="font-size: small"
onitemdatabound="ListView1_ItemDataBound">
<ItemTemplate>
<asp:Label ID="label1 e" runat="server"></asp:Label>
</ItemTemplate>
</asp:ListView>
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
//先將e.Item存放至 dataItem內
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
//利用FindControl取得欄位資料
Label label1 = (e.Item.FindControl("label1") as Label);
//將取得listview內label1的資料存至strlabel1
string strlable1 = DataBinder.Eval(dataItem.DataItem, "label1").ToString();
}
參考資料:http://iambigd.blogspot.tw/2010/07/listview-itemdatabound.html
VS2008為 .Net 3.5版本,還沒有支援GridView無資料時顯示Header的屬性
利用障眼法的方式達成相同功能,雖然不是很好,但比較簡單。
1.建立一個新的DataTable
DataTable dtDataTemp = new DataTable();
dtDataTemp.Columns.Add("名稱");
dtDataTemp.Columns.Add("名稱");
2.建立一個新的DataView 並且設定來源為DataTable
DataView dvDataTemp = dtDataTemp.DefaultView;
3.設定一筆新的DataRow 資料
DataRow oDR = dvDataTemp.Table.NewRow();
4.允許資料列的欄位可以是DBNULL值
foreach (DataColumn item in oDR.Table.Columns)
{
item.AllowDBNull = true;
}
5.Datatable 加入資料列
dvDataTemp.Table.Rows.Add(oDR);
6.GridView設定來源資料及DataBind
GridView1.DataSource = dvDataTemp;
GridView1.DataBind();
7.隱藏第一筆資料
GridView1.Rows[0].Visible = false;
參考資料:
http://kuomingwang.blogspot.tw/2010/03/c-datatable-datagridview.html
http://stackoverflow.com/questions/2040107/show-header-of-a-empty-gridview-for-datasource-is-listdata
http://blog.sina.com.tw/jspcity/article.php?pbgid=55389&entryid=576147
http://www.dotblogs.com.tw/atowngit/archive/2010/08/12/17160.aspx
GridView內的DropDownList當button方式使用
這不是一個很好的使用方式,選取DropDownList值時模擬Button的事件或執行JavaScript使用。
最好不要這樣子使用,真的會被搞死。
以下遇到的方式都是需要用JavaScript去模擬的或控制
1.DropDownList選擇第1個值時,需要利用JavaScript開啟新的一頁,並將資料傳送過去。
使用ScriptManager.RegisterStartupScript方式呼叫JavaScript
strResult = "網址及參數值";
string newWindowSet = "height=600,width=800,toolbar=no,menubar=no,scrollbar=yes,location=yes,directories=no";
ScriptManager.RegisterStartupScript(this, this.GetType(), "名稱",
"window.open('" + strResult + "','名稱','" + newWindowSet + "');", true);
2.DropDownList選擇第2個值時,需要有confirm的對話視窗讓使用者選擇「Yes」或「No」,才可以執行事件。
目前我找不到DropDownList可以這樣子處理的方式,因為DropDownList只能對一個物件做控制,不能對每一個值做onclick或onchange的控制,因此建立一個Button去模擬相同的功能。
且因為要使用Button的功能,不能用Visible= flase關閉button,所以只能將Button在畫面隱藏起來。
<span style="DISPLAY:none">
<asp:Button ID="btnDel" runat="server" CausesValidation="false" Text="Delete"
OnClientClick='return confirm(this.getAttribute("RecordDelMessage"))'
onclick="btnDel_Click" />
</span>
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "btn_Del", "{ document.getElementById('" + btnDel.ClientID + "').click();}", true);
利用ScriptManager.RegisterStartupScript方式呼叫JavaScript執行btnDel的click,觸發OnClientClick的事件。
參考資料:
http://felixhuang.pixnet.net/blog/post/24392024-%5Bjavascript%5D-%E7%94%A8-javascript-%E5%9F%B7%E8%A1%8C-asp.net-server-button-(
http://king971119.blogspot.tw/2011/08/jquery-javascript-button-click.html
http://www.cnblogs.com/wzg0319/archive/2011/03/25/1995772.html
http://www.wretch.cc/blog/theone114/21735441
http://blog.yam.com/wewa85/article/29059195
這不是一個很好的使用方式,選取DropDownList值時模擬Button的事件或執行JavaScript使用。
最好不要這樣子使用,真的會被搞死。
以下遇到的方式都是需要用JavaScript去模擬的或控制
1.DropDownList選擇第1個值時,需要利用JavaScript開啟新的一頁,並將資料傳送過去。
使用ScriptManager.RegisterStartupScript方式呼叫JavaScript
strResult = "網址及參數值";
string newWindowSet = "height=600,width=800,toolbar=no,menubar=no,scrollbar=yes,location=yes,directories=no";
ScriptManager.RegisterStartupScript(this, this.GetType(), "名稱",
"window.open('" + strResult + "','名稱','" + newWindowSet + "');", true);
2.DropDownList選擇第2個值時,需要有confirm的對話視窗讓使用者選擇「Yes」或「No」,才可以執行事件。
目前我找不到DropDownList可以這樣子處理的方式,因為DropDownList只能對一個物件做控制,不能對每一個值做onclick或onchange的控制,因此建立一個Button去模擬相同的功能。
且因為要使用Button的功能,不能用Visible= flase關閉button,所以只能將Button在畫面隱藏起來。
<span style="DISPLAY:none">
<asp:Button ID="btnDel" runat="server" CausesValidation="false" Text="Delete"
OnClientClick='return confirm(this.getAttribute("RecordDelMessage"))'
onclick="btnDel_Click" />
</span>
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "btn_Del", "{ document.getElementById('" + btnDel.ClientID + "').click();}", true);
利用ScriptManager.RegisterStartupScript方式呼叫JavaScript執行btnDel的click,觸發OnClientClick的事件。
參考資料:
http://felixhuang.pixnet.net/blog/post/24392024-%5Bjavascript%5D-%E7%94%A8-javascript-%E5%9F%B7%E8%A1%8C-asp.net-server-button-(
http://king971119.blogspot.tw/2011/08/jquery-javascript-button-click.html
http://www.cnblogs.com/wzg0319/archive/2011/03/25/1995772.html
http://www.wretch.cc/blog/theone114/21735441
http://blog.yam.com/wewa85/article/29059195