乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      點(diǎn)擊按鈕取GridView當(dāng)前被操作行的數(shù)據(jù)

       昵稱(chēng)11448503 2013-03-07
      點(diǎn)擊按鈕取GridView當(dāng)前被操作行的數(shù)據(jù) 
             在GridView里加一個(gè)模版列,里面放一些按鈕,然后呢,點(diǎn)擊這些按鈕的時(shí)候,要可以取到GridView當(dāng)前被點(diǎn)擊的行的字段里的內(nèi)容

      一般有兩種情況,只需要取一個(gè)字段的值,和要取多個(gè)字段的值,其實(shí)都是一樣的方法,就是使用CommandArgument屬性

      一、只需要取一個(gè)字段的值:

      在GridView里的定義

      <asp:TemplateField ShowHeader="False">

                           <ItemTemplate>

                               <asp:Button ID="Button1" runat="server" Text="取編號(hào)" CommandArgument='<%# Eval("id") %>' CommandName="getID" />

                           </ItemTemplate>

                           <ItemStyle HorizontalAlign="Center" />

                       </asp:TemplateField>

      紅色那里,就是設(shè)置這個(gè)按鈕帶到傳遞的參數(shù)是當(dāng)前行的id字段的值,看后臺(tái)的代碼

      protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

           {

               if (e.CommandName == "getID")

               {

                   Response.Write("<br>id:" + e.CommandArgument);

                  Button mybt = new Button();

                   mybt = (Button)e.CommandSource;

                   Response.Write("<br>text:" + mybt.Text);

                   Response.Write("<br>type:" + sender.GetType().ToString());

               }

      看見(jiàn)我使用了e.CommandSource取被點(diǎn)擊的按鈕的Text屬性沒(méi)有?

      有時(shí)候按鈕可能會(huì)因?yàn)橐粋€(gè)字段的值不同,就有不同的Text屬性,嗯,如果一個(gè)表里有記錄“是否啟用”這樣的字段,就經(jīng)常需要在顯示他的GridView里加模版列,顯示“啟用”、“禁用”這樣的快速操作按鈕,如果每一行記錄都顯示兩個(gè)按鈕,是很難看的,所以可以使用一個(gè)按鈕,進(jìn)行兩種操作,按鈕可以這樣定義:

      <asp:Button ID="Button1" runat="server" Text='<%# Convert.ToInt32(Eval("isUse"))==0:"啟用"?"禁用" %>' CommandArgument='<%# Eval("id") %>' CommandName="getID" />

      看他的Text屬性,如果isUse字段的值是0,那當(dāng)前記錄是在禁用狀態(tài)的,所以快捷操作按鈕應(yīng)該顯示“啟用”,否則呢,就顯示“禁用”

      然后呢,就可以在RowCommand事件里,使用e.CommandSource取這個(gè)按鈕的Text屬性,判斷當(dāng)前的操作是要“啟用”還是“禁用”了


      二、要取多個(gè)字段的值

      因?yàn)镃ommandArgument屬性只可以傳遞一個(gè)值,所以如果要傳遞多個(gè)字段的值的時(shí)候,最好是轉(zhuǎn)化成傳遞當(dāng)前行的行號(hào),如果我們有GridView的一個(gè)行號(hào),我們就可以取到這一行的所有數(shù)據(jù)了

      在GridView里的定義

      <asp:TemplateField ShowHeader="False">

                           <ItemTemplate>

                               <asp:Button ID="Button2" runat="server" Text="取行號(hào)" CommandArgument='<%# Container.DataItemIndex + 1 %>' CommandName="getRow" />

                           </ItemTemplate>

                           <ItemStyle HorizontalAlign="Center" />

                       </asp:TemplateField>

      看紅色那里,利用了綁定<%# Container.DataItemIndex + 1 %>傳遞當(dāng)前行號(hào),DataItemIndex是從0開(kāi)始的,所以每一行都要加1

      后臺(tái)

      protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

           {

               if (e.CommandName == "getRow")

               {

                   Response.Write("當(dāng)前行號(hào)為:" + e.CommandArgument);

               }

           }

      有了當(dāng)前行的行號(hào),就可以用GridView1.Rows[e.CommandArgument].Cells[i].Text取第i列的值了,如果有一列是模版列,也可以用FindControl方法取值。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多