<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:44:47
        文檔

        ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄

        ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄:一、簡(jiǎn)介 從ASP.NET 2.0起引入了一批新的功能強(qiáng)大的視圖控件,例如Gridview、FormView和DetailsView等等。通過(guò)和數(shù)據(jù)源控件的簡(jiǎn)單結(jié)合,在許多情況下,僅需要簡(jiǎn)單的配置方式就可以開發(fā)出功能強(qiáng)大的應(yīng)用程序。但遺憾的是,Gridview控件中并沒(méi)有提供像
        推薦度:
        導(dǎo)讀ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄:一、簡(jiǎn)介 從ASP.NET 2.0起引入了一批新的功能強(qiáng)大的視圖控件,例如Gridview、FormView和DetailsView等等。通過(guò)和數(shù)據(jù)源控件的簡(jiǎn)單結(jié)合,在許多情況下,僅需要簡(jiǎn)單的配置方式就可以開發(fā)出功能強(qiáng)大的應(yīng)用程序。但遺憾的是,Gridview控件中并沒(méi)有提供像

        一、簡(jiǎn)介
        從ASP.NET 2.0起引入了一批新的功能強(qiáng)大的視圖控件,例如Gridview、FormView和DetailsView等等。通過(guò)和數(shù)據(jù)源控件的簡(jiǎn)單結(jié)合,在許多情況下,僅需要簡(jiǎn)單的配置方式就可以開發(fā)出功能強(qiáng)大的應(yīng)用程序。但遺憾的是,Gridview控件中并沒(méi)有提供像在FormView和DetailsView控件中那樣直接插入新記錄操作的支持。圖1給出了典型的使用控件展示數(shù)據(jù)庫(kù)數(shù)據(jù)的情形。
        圖1 使用GridView控件展示VS2005示例數(shù)據(jù)庫(kù)Address表格中的數(shù)據(jù)

        熟悉Gridview控件使用的朋友都知道,圖1中一切都齊了,只差一個(gè)Insert操作的默認(rèn)支持。我現(xiàn)在使用的是ASP.NET 3.5,結(jié)果一樣,仍然沒(méi)有直接提供對(duì)于插入操作的配置支持。
        二、解決方案
        其實(shí),答案還是有的,這要求對(duì)于Gridview控件有更進(jìn)一步的了解。我們知道Gridview為方便開發(fā)人員定制編程提供了大量的模板支持。根據(jù)插入操作的一般實(shí)現(xiàn)界面,我們可以利用Gridview的footer的模版功能,實(shí)現(xiàn)在Gridview控件的最后一行,提供一個(gè)空白行給用戶輸入要輸入的記錄,從而間接地實(shí)現(xiàn)Gridview控件對(duì)于插入操作的支持。

        三、實(shí)例展示
        (一)創(chuàng)建示例網(wǎng)站并建立數(shù)據(jù)庫(kù)關(guān)聯(lián)
        啟動(dòng)Visual Studio 2005/2008并選擇“ASP.NET Web Site”模板新創(chuàng)建一個(gè)示例網(wǎng)站GridViewExt。在默認(rèn)頁(yè)面Default.aspx中拖入一個(gè)GridView控件。然后,點(diǎn)擊GridView控件右上角的智能感知提示按鈕,為此控件配置一個(gè)SqlDataSource類型的數(shù)據(jù)源控件SqlDataSource1。并且,通過(guò)簡(jiǎn)單的向?qū)渲弥螅箶?shù)據(jù)源控件SqlDataSource1創(chuàng)建與示例數(shù)據(jù)庫(kù)Depart.mdf的關(guān)聯(lián),并進(jìn)一步關(guān)聯(lián)到其中的DepartInfo表格上。
        【提示】為了簡(jiǎn)化起見(jiàn),示例數(shù)據(jù)庫(kù)Depart.mdf中僅包含了一個(gè)表格DepartInfo,而且其架構(gòu)也十分簡(jiǎn)單(其中字段DepartID為主關(guān)鍵字),如下圖2所示:

        最后生成的數(shù)據(jù)源控件SqlDataSource1配置參數(shù)(經(jīng)一定修改)如下所示:
        <asp:SqlDataSource ID="SqlDataSource1" runat="[url=javascript:;]server[/url]"
                   ConnectionString="<%$ ConnectionStrings:DepartConnectionString %>"
                   SelectCommand="SELECT DepartID, DepartName FROM DepartInfo"
                   DeleteCommand="Delete from DepartInfo where DepartID=@DepartID"
                   InsertC
               >
                <DeleteParameters>
                   <asp:Parameter Name="DepartID" Type="Int32" />
                </DeleteParameters>  
              <InsertParameters>
                   <asp:Parameter Name="DepartID" Type="Int32" />
                   <asp:Parameter Name="DepartName" Type="String" />
               </InsertParameters>        

        </asp:SqlDataSource>
        (二)修改頁(yè)面Default.aspx布局
        我們的打算是,在讓用戶進(jìn)行選擇,當(dāng)用戶需要新增一記錄時(shí),便點(diǎn)擊“添加”按鈕,之后在Gridview的最后一行里,顯示一個(gè)空白行,讓用戶按字段進(jìn)行輸入。當(dāng)用戶決定不輸入新空白記錄時(shí),可以按"隱藏"按鈕返回,該空白行消失。
        要實(shí)現(xiàn)以上目的,我們可以充分利用Gridview的footer的模版功能進(jìn)行自定義,因?yàn)楸砀裰袃H有一個(gè)可編輯列DepartName;所以,我們只需要在此列的footer模版中,定義如下(注意其中加粗部分):
        <asp:Button ID="outAdd" runat="Server" Text="添加新記錄" nclick="outAdd_Click" />
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
           AllowSorting="True" AutoGenerateColumns="False" CellPadding="4"ShowFooter =" false"
           DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None"DataKeyNames="DepartID">
           <FooterStyle. BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
           <RowStyle. BackC0" numbertype="1" negative="False" hasspace="False" sourcevalue="7" unitname="F" w:st="on">7F6F3" ForeColor="#333333" />
           <Columns>
               <asp:TemplateField ShowHeader="False">
                   <EditItemTemplate>
                       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True"
                           CommandName="Update" Text="Update"></asp:LinkButton>
                        <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
                           CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                   </EditItemTemplate>
                   <ItemTemplate>
                       <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
                           CommandName="Edit" Text="Edit"></asp:LinkButton>
                   </ItemTemplate>
                   <FooterTemplate>
                       <asp:Button ID="btnAdd" Runat="server" Text="Add" nClick="btnAdd_Click" />  
                       <asp:Button ID="btnCancel" Runat="server" Text="Hide" nClick="btnCancel_Click" />
                   </FooterTemplate>
               </asp:TemplateField>
               <asp:TemplateField ShowHeader="False">
                   <ItemTemplate>
                       <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
                           CommandName="Select" Text="Select"></asp:LinkButton>
                   </ItemTemplate>
                   <ItemTemplate>
                       <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="true"
                           CommandName="Delete" Text="Delete"></asp:LinkButton>
                   </ItemTemplate>
               </asp:TemplateField>
               <asp:BoundField DataField="DepartID" HeaderText="DepartID"
                   InsertVisible="False" ReadOnly="True" SortExpression="DepartID" />
               <asp:TemplateField HeaderText="DepartName" SortExpression="DepartName">
                   <EditItemTemplate>
                       <asp:TextBox ID="DepartNameTextBox" runat="server" Text='<%# Bind("DepartName") %>'></asp:TextBox>
                   </EditItemTemplate>
                   <ItemTemplate>
                       <asp:Label ID="Label1" runat="server" Text='<%# Bind("DepartName") %>'></asp:Label>
                   </ItemTemplate>
                    <FooterTemplate>
                       <asp:TextBox ID="DepartNameBox" Runat="server"></asp:TextBox> 
                   </FooterTemplate>
               </asp:TemplateField>
           </Columns>
           <PagerStyle. BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
           <SelectedRowStyle. BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
           <HeaderStyle. BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
           <EditRowStyle. BackColor="#999999" />
           <AlternatingRowStyle. BackColor="White" ForeColor="#284775" />
        </asp:GridView>
        首先注意的是,在Gridview控件之前添加了一個(gè)ASP.NET按鈕“outAdd”,用于控件是否顯示Gridview控件的<foottemplate>模板內(nèi)容。顯然,在頁(yè)面啟動(dòng)開始時(shí)這個(gè)模板是隱藏的。因此,這個(gè)按鈕的Click事件代碼(位于文件Default.aspx.cx中)相當(dāng)簡(jiǎn)單,如下所示:
        protected void outAdd_Click(object sender, EventArgs e)
        {
           GridView1.ShowFooter = true;

        }
        接下來(lái)是Gridview的有關(guān)的標(biāo)記代碼。可以看到,在DepartName列的<foottemplate>中提供了DepartNameBox文本框以供用戶輸入(因?yàn)楸纠械倪@個(gè)字段僅是簡(jiǎn)單的文本字段,對(duì)于其它類型字段的情況,需要?jiǎng)?chuàng)建相應(yīng)的ASP.NET控件進(jìn)行操作)。
        另外,請(qǐng)注意在第一列的<FooterTemplate>中我們添加了Add和Hide兩個(gè)按鈕,它們的事件代碼如下:
        <script. runat="server">
        void btnCancel_Click(object sender, EventArgs e)
        {
           GridView1.ShowFooter = false;
        }

        void btnAdd_Click(object sender, EventArgs e)
        {
           TextBox t1 = GridView1.FooterRow.FindControl("DepartNameBox") as TextBox;

           SqlDataSource1.InsertParameters["DepartName"].DefaultValue = t1.Text;

           SqlDataSource1.Insert();

        }
        其中的Hide按鈕的事件,用來(lái)取消顯示Gridview的footer模版,因此設(shè)置showfooter屬性為false,而通過(guò)點(diǎn)擊按鈕Add則可以將新增的記錄插入(添加)到數(shù)據(jù)庫(kù)表格中去。
        而Add按鈕,是當(dāng)用戶決定新增記錄時(shí)點(diǎn)選的,此時(shí)將設(shè)置showfooter屬性為true,以顯示各列的foottemplate,從而達(dá)到顯示新的一個(gè)空白行的目的。
        特別值得注意的是,在這里你必須以內(nèi)聯(lián)方式把按鈕“Add”與“Hide”的Click事件處理器函數(shù)放置于ASPX文件之中,而不能放到代碼文件Default.aspx.cs中;否則,會(huì)出現(xiàn)如圖3所示的編譯錯(cuò)誤。

        圖3 把按鈕“Add”與“Hide”的Click事件處理器函數(shù)放置于代碼文件Default.aspx.cs中導(dǎo)致的編譯錯(cuò)誤提示
        另外,在GridView1的屬性聲明中必須指定DataKeyNames="DepartID";否則,在運(yùn)行時(shí)如果點(diǎn)擊“Delete”或“Update”鏈接會(huì)出現(xiàn)“經(jīng)典”的錯(cuò)誤提示,如圖4所示。

        圖4 未指定GridView的DataKeyNames導(dǎo)致的錯(cuò)誤提示
        四、觀察運(yùn)行結(jié)果
        按F5運(yùn)行上面的示例頁(yè)面DEFAULT.ASPX,一切順利的話,你會(huì)觀察到如圖5所示的初始快照。

        圖5 示例頁(yè)面初始快照
        然后,點(diǎn)擊“添加新記錄”按鈕,將出現(xiàn)如圖6所示快照。

        圖6 為GRIDVIEW控件添加“插入”功能的運(yùn)行示例快照

        很顯然,在輸入部門名稱后點(diǎn)擊“Add”可以把新的部門加入到數(shù)據(jù)庫(kù)表格中,而點(diǎn)擊“Hide”按鈕則可以隱藏這個(gè)頁(yè)腳的顯示。
        五、小結(jié)
        ASP.NET 2.0引入的Gridview控件功能相當(dāng)強(qiáng)大,但是也存在一定的不足。本文中展示的僅僅是其中之一,而且也僅展示了為Gridview控件提示插入功能的一種方法。
        最后注意,雖然本文示例右VS2008下調(diào)試通過(guò),但根據(jù)我的經(jīng)驗(yàn),在VS2005的ASP.NET 2.0環(huán)境下也應(yīng)該沒(méi)有問(wèn)題。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄

        ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄:一、簡(jiǎn)介 從ASP.NET 2.0起引入了一批新的功能強(qiáng)大的視圖控件,例如Gridview、FormView和DetailsView等等。通過(guò)和數(shù)據(jù)源控件的簡(jiǎn)單結(jié)合,在許多情況下,僅需要簡(jiǎn)單的配置方式就可以開發(fā)出功能強(qiáng)大的應(yīng)用程序。但遺憾的是,Gridview控件中并沒(méi)有提供像
        推薦度:
        標(biāo)簽: 記錄 操作 直接
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费人成在线观看播放a| 亚洲一区二区三区四区在线观看| 亚洲男人的天堂在线播放| av电影在线免费看| 亚洲AV永久无码精品一区二区国产 | 精品无码一级毛片免费视频观看| 国产美女在线精品免费观看| 人成电影网在线观看免费| 成年性午夜免费视频网站不卡| 亚洲精品综合一二三区在线 | 老汉精品免费AV在线播放| 国产精品亚洲美女久久久| 色噜噜狠狠色综合免费视频| 日本人护士免费xxxx视频| 亚洲欧美精品午睡沙发| 成人一a毛片免费视频| 亚洲国产成人久久综合| 午夜小视频免费观看| 激情无码亚洲一区二区三区| 国产免费啪嗒啪嗒视频看看| 污污视频网站免费观看| 亚洲日韩VA无码中文字幕| 丰满少妇作爱视频免费观看| 国产成人综合亚洲AV第一页| 国产性生大片免费观看性| 久久亚洲精品中文字幕无码| 一级毛片免费视频| 亚洲乱码日产精品BD在线观看| 永久免费av无码不卡在线观看| 亚洲综合无码一区二区痴汉| 国产成人精品免费视频软件| 色吊丝性永久免费看码| 免费99精品国产自在现线| 国产福利在线观看免费第一福利| 亚洲校园春色另类激情| a国产成人免费视频| 亚洲一本大道无码av天堂| 精品国产污污免费网站入口在线| 亚洲AV综合色区无码一区爱AV | 无码专区一va亚洲v专区在线| 老湿机一区午夜精品免费福利|