亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

GridView的常規用法

2019-11-14 16:38:38
字體:
來源:轉載
供稿:網友

  GridView控件在asp.net中相當常用,以下是控件的解釋,有些是常用的,有些是偶爾用到的,查找、使用、記錄,僅此而已。(最后附帶DropDownList控件)

 

ASP.NET中GridView常規用法

  1、gridview前臺界面代碼

  gridview創建列最主要的有兩種方式:

  1)數據綁定,表示數據綁定控件中作為文本顯示的字段。DataField ="AnswerNum",AnswerNum是數據源中的一個字段。舉例說明: 

<asp:BoundField DataField ="AnswerNum" >        <ItemStyle Width ="8%" HorizontalAlign ="Center" /> </asp:BoundField>

  2)使用模板創建,舉例說明: 

<asp:TemplateField HeaderText ="查看">     <ItemTemplate >          <asp:LinkButton ID ="LinkButtonViewSOption" runat ="server" CommandName ="ViewSOption" CommandArgument ='<%# Bind("QO_ID") %>'>描</asp:LinkButton>     </ItemTemplate>     <ItemStyle Width ="5%" HorizontalAlign ="Center" /></asp:TemplateField>

   ItemStyle是其模板樣式,根據具體要求做出調整。

  

  2、綁定數據源 

this.gvQuestions.DataSource = ExamQuestionInfoList;                this.gvQuestions.DataBind();                this.gvQuestions.PageIndex = 0;

  gvQuestions為GridView控件,ExamQuestionInfoList為數據源,gridview的數據源可以是DataTable或者是數據集DataSet。

 

  3、停留在某一行變色

PRivate void ChangeColor(object sender, GridViewRowEventArgs e)        {            if (e.Row.RowType == DataControlRowType.DataRow)            {                e.Row.Attributes.Add("onmouSEOver", "c=this.style.backgroundColor;this.style.backgroundColor='#E6F5FA'");                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");            }        }

protected void gvQuestions_RowDataBound(object sender, GridViewRowEventArgs e)
{
ChangeColor(sender, e);
}

 

  4、操作某一行

  直接舉例說明

protected void gvSubjectiveOption_RowCommand(object sender, GridViewCommandEventArgs e)        {            int rowSelected = Convert.ToInt32(e.CommandArgument);            questionOptionInfo = QuestionOptionBLL.GetModel(rowSelected);            //查看            if (e.CommandName == "ViewSOption")            {                this.tbOptionStem.Text = questionOptionInfo.QO_Option;                this.tbCorrectAnswer.Text = questionOptionInfo.QO_SubjectAnswer;//主觀題答案                this.tbCorrectAnswerExplain.Text = questionOptionInfo.QO_Explain;                //選項附件                string optionaccessoryStr = questionOptionInfo.QO_Accessory;                string[] optionAccessoryArr = optionAccessoryStr.Split(',');                for (int i = 0; i < optionAccessoryArr.Length; i++)                {                    OptionAccessoryList.Add(optionAccessoryArr[i]);                }                BindOptionAccessoryList();            }            if (e.CommandName == "DeleteOption")            {                QuestionOptionBLL.Delete(rowSelected);                int EQ_ID = questionOptionInfo.EQ_ID;                BindSubjectiveOption(EQ_ID);//重新綁定主觀題問題信息            }        }

  e.CommandName對應前臺界面的一些字段: 

<asp:TemplateField HeaderText ="查看">        <ItemTemplate >             <asp:LinkButton ID ="LinkButtonViewSOption" runat ="server" CommandName ="ViewSOption" CommandArgument ='<%# Bind("QO_ID") %>'>描</asp:LinkButton>        </ItemTemplate>        <ItemStyle Width ="5%" HorizontalAlign ="Center" /></asp:TemplateField><asp:TemplateField HeaderText ="刪除" >       <ItemTemplate >            <asp:ImageButton ID ="ImageButtonDelete2" runat ="server"  BorderStyle ="None" CommandName ="DeleteOption" CommandArgument ='<%# Bind("QO_ID") %>' ImageUrl ="~/images/delete.gif" />        </ItemTemplate>      <ItemStyle Width ="5%" HorizontalAlign ="Center" />
</asp:TemplateField>

  其中CommandName ="DeleteOption" CommandArgument ='<%# Bind("QO_ID") %>代表數據集中的某個字段。

  

  5、添加Checkbox并且初始化臺界面:

<asp:TemplateField >     <ItemTemplate >         <asp:LinkButton ID ="LinkButton1" runat ="server" CommandName ="selectCorrectAnswer" CommandArgument ='<%# Bind("QO_ID") %>'>           <asp:CheckBox ID ="cbCorrectAnswer" runat ="server" />         </asp:LinkButton>
</ItemTemplate>

   后臺邏輯: 

/// <summary>        /// 初始化checkbox值        /// </summary>        /// <param name="gv">gridview控件</param>        /// <param name="dtSource">數據源</param>        /// <param name="cbName">checkbox控件名稱</param>        /// <param name="cbValue">checkbox的值</param>        private void InitializeCheckBox(GridView gv, DataTable dtSource, string cbName, string cbValue)        {            int count = dtSource.Rows.Count;            if (count > 0)            {                for (int i = 0; i < count; i++)                {                    CheckBox cb = gv.Rows[i].FindControl(cbName) as CheckBox;                    if (cb != null)                    {                        if (dtSource.Rows[i][cbValue].ToString() == "0")                        {                            cb.Checked = false;                        }                        else                        {                            cb.Checked = true;                        }                    }                }            }        }

    

  6、去掉gridview自帶的分頁數字

  因為項目中在使用gridview時需要用到分頁,而它本身的分頁顯得不足以表達項目所以表現的操作,所以需要添加新的分頁,必然需要去到它原來的分頁。

  1)首先如果分頁,必然要把屬性AllowPaging設置為true。

  2)PagerSettings-Visible屬性設置為false,分頁數字自此去掉。

  3)手動添加分頁,已經寫出來了,但是項目還沒有測試到,所以等此功能測試完畢后再添加此部分。

  添加手動分頁:

  首先添加引用:<%@ Register Assembly ="AspNetPager" Namespace ="Wuqi.Webdiyer" TagPrefix ="webdiyer" %>

  寫前臺界面:

<div id ="PagingDiv" style ="text-align:center ;vertical-align:middle;margin-top:4px" runat="server">                                    <webdiyer:AspNetPager ID ="AspNetPager1" runat ="server"                                         AlwaysShowFirstLastPageNumber ="true" FirstPageText ="首頁" LastPageText ="尾頁"                                    NextPageText ="下一頁" PrevPageText ="上一頁" ScrollBars ="Auto"                                     ShowCustomInfoSection="Left" ShowPageIndexBox ="Always" AlwaysShow ="true" PageSize ="20"                        CustomInfoHTML="總記錄數:<font color='#f30f30'>%RecordCount%</font>條&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;當前: 第<font color='blue'>%CurrentPageIndex%</font> 頁,共 <font color='blue'>%PageCount%</font>頁"                                         CurrentPageButtonPosition ="Beginning" onpagechanged="AspNetPager1_PageChanged"></webdiyer:AspNetPager>                                </div> 

  后臺添加邏輯:this.AspNetPager1.RecordCount = ExamQuestionInfoList.Count;

  同時事件: 

protected void AspNetPager1_PageChanged(object sender, EventArgs e)        {            this.gvQuestions.PageIndex = this.AspNetPager1.CurrentPageIndex - 1;            this.gvQuestions.SelectedIndex = -1;            //更新成功后更新界面           BindgvQuestions();        }

 

  如果gridview中的記錄很少,可能一兩頁就能解決問題,那自帶分頁完成能解決問題:

  onpageindexchanging="gvObjectOption_PageIndexChanging"

protected void gvObjectOption_PageIndexChanging(object sender, GridViewPageEventArgs e)        {            this.gvObjectOption.PageIndex = e.NewPageIndex;            this.gvObjectOption.DataBind();        }

  分頁到此完成。

 

2014年9月1日添加:

此處添加asp.net的gridview自帶的編輯、更新、取消事件。比較簡單,直接貼代碼:

protected void gvExamQuestions_RowEditing(object sender, GridViewEditEventArgs e)        {            gvExamQuestions.EditIndex = e.NewEditIndex;            BindgvExamQuestion(E_ID);//重新綁定        }        /// <summary>        /// 取消編輯事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void gvExamQuestions_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)        {            gvExamQuestions.EditIndex = -1;            BindgvExamQuestion(E_ID);//重新綁定        }        /// <summary>        /// 更新事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        protected void gvExamQuestions_RowUpdating(object sender, GridViewUpdateEventArgs e)        {                //此處可以進行邏輯操作                gvExamQuestions.EditIndex = -1;                BindgvExamQuestion(E_ID);//重新綁定                    }

 

 

 WPF中gridview使用

  很久不做wpf項目了,今天做wpf時需要使用gridview控件,想到前段時間asp.net中總結過gridview控件,所以拿來使用,發現完全不同。沒辦法,忘記了,查找很久才找到以前代碼,并記錄,以便下次查找。

  最主要的是xaml中gridview列表的排布以及樣式的自定義。

<DataGrid AutoGenerateColumns="False" Grid.Column="1" Grid.Row="1" FontSize="18" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"  HorizontalGridLinesBrush="White"  RowBackground="Black" Foreground="White" RowHeight="45"  Background="Black"  ColumnHeaderHeight="50"  Height="528" HorizontalAlignment="Left" Margin="598,151,0,0" Name="dataGrid1" VerticalAlignment="Top"  Width="612" AllowDrop="False" FontStretch="Normal" FontStyle="Normal" FontWeight="Normal">                            <DataGrid.ColumnHeaderStyle>                                <Style TargetType="DataGridColumnHeader">                                    <Setter Property="Background" Value="black"/>                                       <Setter Property="Foreground" Value="white"/>                                    <Setter Property="FontSize" Value="20" />                                    <Setter Property="HorizontalContentAlignment" Value="Center"/>                                    <Setter Property="VerticalContentAlignment" Value="Center"/>                                </Style>                            </DataGrid.ColumnHeaderStyle>                            <DataGrid.Columns >                    <DataGridTextColumn Header="考號" Width="60" Binding="{Binding Path=user_ID}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="成績" Width="50" Binding="{Binding Path=Score}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="項目" Width="50" Binding="{Binding Path=Curriculum}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="考核時間" Width="145" Binding="{Binding Path=ExamTime}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="耗時" Width="50" Binding="{Binding Path=TimeElapsed}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="答題數" Width="65" Binding="{Binding Path=AllQuestionNUM}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="答對數" Width="65" Binding="{Binding Path=correctQuestionNUM}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                                <DataGridTextColumn Header="所有試題" Width="*" Binding="{Binding Path=AllQuestion}" IsReadOnly="True" ElementStyle="{StaticResource dgCell}"/>                </DataGrid.Columns >            </DataGrid >

  上面是一次完整的gridview的使用,其中靜態資源dgCell:

<Page.Resources >        <ResourceDictionary >            <Style x:Key="dgCell" TargetType="TextBlock">                <Setter Property="TextAlignment" Value="Center"/>            </Style >        </ResourceDictionary >    </Page.Resources >

  當然,最后的gridview數據源的綁定則是最簡單的,一行代碼:this.dataGrid1.ItemsSource = transcript.selectScore().Tables[0].DefaultView;

 

 

DropDownList常規用法:

  1、DropDownList綁定簡單數據源

  此處暫且寫一個簡單的數據源,只是為了說明效果。

private void BindDropDownUp()        {            ArrayList al = new ArrayList();            al.Add("11");            al.Add("22");            al.Add("33");            this.DropDownList1.DataSource = al;            this.DropDownList1.DataBind();        }

  獲取DropDownList中選擇的值:string text = this.DropDownList1.SelectedItem.Text;

 

  2、DropDownList綁定較為復雜數據源

  此處從數據庫中提取一個數據集ds,DropDownList控件的text框中顯示一個值,選中后在后臺可以獲取綁定的value。具體如下:

private void BindDropDownUp()        {            string strSql = "select * from [OSCE].[dbo].[QuestionType]";            DataSet ds = Query(strSql);            this.DropDownList1.DataSource = ds;            this.DropDownList1.DataTextField = "QT_Name";            this.DropDownList1.DataValueField = "QT_ID";            this.DropDownList1.DataBind();//將數據源綁定到類似( GridView) 控件        }

  獲取DropDownList控件text框的值:string text = this.DropDownList1.SelectedItem.Text;

  獲取DropDownList控件綁定的value值:string text2 = this.DropDownList1.SelectedValue;

 

  3、在頁面初始化時直接給DropDownList賦值

  題外話:這個功能用的非常多,實現也很簡單,但前提是你必須知道。找了好久才發現的。

ListItem li = DropDownList1.Items.FindByText("外科");//外科是想顯現的值,前提是DataTextField中必須有            if (li != null)            {                int index = DropDownList1.Items.IndexOf(li);                DropDownList1.SelectedIndex = index;            }

 

  

  總結到此,如果另有積累,再另行添加。

 


上一篇:Asp.Net數據綁定

下一篇:遠程調試

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人精品视频久久久久| 色偷偷偷综合中文字幕;dd| 久久国产精品久久久久久| 国产一区二区色| 国产精品一区二区三| 欧日韩在线观看| 久久精品视频va| 国产一区二区三区视频免费| 韩国欧美亚洲国产| 亚洲二区在线播放视频| 久久精品视频播放| 亚洲www永久成人夜色| 国产欧美一区二区三区久久| 国产美女扒开尿口久久久| 最好看的2019的中文字幕视频| 欧美一级大片在线免费观看| 精品无人国产偷自产在线| 黑人精品xxx一区| 国产亚洲xxx| 亚洲精品久久久久中文字幕二区| 亚洲电影免费观看高清完整版| 欧美久久精品一级黑人c片| 国产精品久久久久77777| 国产成人精品视频在线| 日韩精品在线视频美女| 2018中文字幕一区二区三区| 黑人巨大精品欧美一区二区免费| 国产精品欧美日韩久久| 亚洲男人av电影| 色综合老司机第九色激情| 欧美日韩第一视频| 97精品国产97久久久久久春色| 久久综合免费视频影院| 国产www精品| 日韩专区在线播放| 欧美日韩国产精品一区二区不卡中文| 亚洲国产欧美日韩精品| 国产精品视频一区二区三区四| 日韩精品视频在线| 国产精品揄拍一区二区| 在线成人中文字幕| 911国产网站尤物在线观看| 久久精品一偷一偷国产| 欧美激情国产高清| 91精品久久久久| 伊是香蕉大人久久| 国产精品男人爽免费视频1| 亚洲精品久久久久久久久| 91丝袜美腿美女视频网站| 午夜欧美大片免费观看| 久久久久久美女| 欧美午夜女人视频在线| 国模吧一区二区三区| 亚洲性视频网站| 456亚洲影院| 国产精品91久久久| 国产成人综合一区二区三区| 亚洲电影免费在线观看| 国产成人在线视频| 欧美精品电影免费在线观看| 国产精品美女午夜av| 91亚洲精品久久久久久久久久久久| 在线观看日韩视频| 日韩视频在线免费观看| 国产精品白嫩初高中害羞小美女| 日韩中文娱乐网| 精品无人区太爽高潮在线播放| 欧洲亚洲免费视频| 国产精品揄拍500视频| 欧美老女人性生活| 亚洲全黄一级网站| 亚洲国产精品成人精品| 国产一区二区日韩| 国产精品88a∨| 97色在线观看免费视频| 欧美成人激情图片网| 国产精品一区久久久| 亚洲国产另类 国产精品国产免费| 国产z一区二区三区| 国产亚洲日本欧美韩国| 欧美电影在线观看高清| 亚洲国产精品电影| 日本老师69xxx| 成人性生交大片免费观看嘿嘿视频| 97国产真实伦对白精彩视频8| 欧美疯狂性受xxxxx另类| 欧美成人一二三| 亚洲国产精品电影在线观看| 91亚洲精品久久久| 国产va免费精品高清在线观看| 久久亚洲综合国产精品99麻豆精品福利| 国产精品电影一区| 精品国产31久久久久久| 亚洲精品videossex少妇| 国产日韩在线免费| 91精品在线国产| 中文字幕日韩专区| 国产午夜精品美女视频明星a级| 91在线色戒在线| 亚洲自拍高清视频网站| 日韩欧美在线一区| 成人春色激情网| 国产aⅴ夜夜欢一区二区三区| 国产精品日韩专区| 久久精品电影网| 久久精品国产精品亚洲| 91热福利电影| 欧美精品999| 久久久久久com| 欧美激情免费视频| 欧美与黑人午夜性猛交久久久| 欧美精品在线免费观看| 亚洲美女黄色片| 亚洲国产福利在线| 免费不卡欧美自拍视频| 亚洲国产精品99| 91av在线视频观看| 欧美xxxx18性欧美| 91精品综合视频| 在线精品国产成人综合| 成人乱人伦精品视频在线观看| 成人福利网站在线观看| 亚洲精品日韩在线| 欧美另类暴力丝袜| 日本一区二区三区四区视频| 亚洲男人天堂九九视频| 欧美区二区三区| 亚洲天堂开心观看| 91国产在线精品| 久久久久在线观看| 亚洲成人中文字幕| 精品久久久久久久久久久久久| 91精品国产高清自在线看超| 国产精品成人播放| 神马久久桃色视频| 日韩动漫免费观看电视剧高清| 亚洲精品综合久久中文字幕| 动漫精品一区二区| 亚洲国产精品悠悠久久琪琪| 欧美最猛黑人xxxx黑人猛叫黄| 精品国产欧美一区二区三区成人| 国产成人久久久精品一区| 国产69精品久久久久9| 亚洲精品一区二区久| 亚洲人高潮女人毛茸茸| 日韩色av导航| 欧美成人激情视频免费观看| 欧美丝袜一区二区三区| 国产精品电影观看| 亚洲一区二区在线| 91牛牛免费视频| 国产91在线播放| 国产精品久久久久久网站| 懂色aⅴ精品一区二区三区蜜月| 成人黄色片在线| 欧美www在线| 欧美成人精品在线观看| 一本一道久久a久久精品逆3p| 欧美日在线观看| 欧美猛交免费看| 国产精品女视频| 日韩欧美在线视频日韩欧美在线视频| 成人福利视频网| 在线观看日韩视频|