集各種功能於一身的DataGrid

來源:互聯網
上載者:User
datagrid RequiredFieldValidator控制項用來校正一個輸入框中是否輸入了值,RegularExpressionValidator控制項用來進行正則表達是的匹配。關於Regex的說明請參閱其他資料.

其中ControlToValidate屬性就是需要校正的文字框的ID號.標籤中的文本就是在校正不成功的時候顯示出來的提示,Display屬性則是提示資訊的顯示方式.

DataGrid中<Columns>標籤內的內容就是DataGrid的列了,列中還可以添加模版列,對應每一模版列,可以有<ItemTemplate>,<EditItemTemplate>,<HeaderTemplate>,<FooterTemplate>幾個標籤,其中<ItemTemplate>就是DataGrid在正常顯示的時候列的標籤了,<EditTemplate>也就是在編輯狀態中的DataGrid列的樣式了.

在這些標籤中我們可以插入控制項,然後在後台代碼中用DataGrid1.Item[i].FindControls(“Coltrol Name”)可以對DataGrid中的控制項進行操作.
為了在DataGeid為編輯狀態的時候控制DataGrid包含控制項的狀態,我們可以用CSS樣式定義,將下面代碼加入aspx檔案的</head>和<Body>中,然後在<asp:TextBox>標籤中加入CssClass=“myClass“即可改片控制項的樣式。(跟普通的方法沒什麼區別啦,呵呵。)

<style type="text/css">.myTextBox { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: #000000 1px solid; WIDTH: 80px; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 20px }

</style>


這裡只給出了部分代碼,如需要完整代碼,請來信索取。cheaper_c@sina.com

----------------------------------------------------------下面是運行時螢幕接圖-----------------------------------------



------------------------------------------------部分後台代碼---------------------------------------------------------

private new void DataBind()

{

DataBind("au_fname");

}

//重載DataBind()方法,方便DataGrid中進行排序

private void DataBind(string sortfield)

{

ds = new DataSet();

da = new SqlDataAdapter("SELECT * FROM authors_new",conn);

da.Fill(ds,"authors");

DataView source = ds.Tables["authors"].DefaultView;

source.Sort = sortfield;

DataGrid1.DataSource = source;

DataGrid1.DataBind();

SqlDataAdapter ddl_da = new SqlDataAdapter("SELECT DISTINCT state FROM authors_new",conn);

ddl_da.Fill(ddl_table);

RegClientScript();

}

//這段方法參照了vzxq兄的《在DataGrid頁首上添加全選的CheckBox控制項》一文

//原文地址: http://blog.csdn.net/vzxq/archive/2004/09/13/103156.aspx

private void RegClientScript()

{

//對於DataGrid1.Controls[0],大家可以參看vzxq兄的另一篇文章

//http://blog.csdn.net/vzxq/archive/2004/09/13/103167.aspx

foreach (DataGridItem item in DataGrid1.Controls[0].Controls)

{

if (item.ItemType == ListItemType.Header)

{

CheckBox chkAll=(CheckBox)item.FindControl("ChkAll");

System.Text.StringBuilder strScript = new System.Text.StringBuilder("<script language='javascript'> \n");

strScript.Append(" function checkStatus() { \n");

strScript.Append(" var bAll = true; \n");

strScript.Append(" bAll = document.all('" + chkAll.ClientID + "').checked; \n");



for(int i=0; i<DataGrid1.Items.Count ; i++)

{

strScript.Append(" document.all('" + DataGrid1.Items[i].Cells[0].FindControl("CheckBox1").ClientID + "').checked = bAll; \n");

}

strScript.Append(" } \n");

strScript.Append("</script> \n");



if(!Page.IsClientScriptBlockRegistered("checkStatus"))

Page.RegisterClientScriptBlock("checkStatus",strScript.ToString());



chkAll.Attributes.Add("onclick","checkStatus()");

break;

}

}

}

//當點擊”編輯”按鈕的時候觸發的伺服器端函數

//首先將Panel的Visible屬性設定為false,因為當DataGrid在編輯狀態時儲存格中的控制項(如TextBox)會將DataGeid撐寬

//擠到我們添加記錄的panel就不好看了.

public void Grid_Edit(object sender, System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

Panel1.Visible = false;

DataGrid1.EditItemIndex = (int)e.Item.ItemIndex;

DataBind();

System.Web.UI.WebControls.DropDownList ddl_state = (DropDownList)DataGrid1.Items[(int)e.Item.ItemIndex].FindControl("edit_



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。