簡體   English   中英

在gridview行內隱藏按鈕

[英]Hide button inside a gridview row

我需要在ASP.NET GridView行內顯示/隱藏Button 這與GridView有關的代碼,請考慮將網格放置在FormView

 <asp:FormView
      ID="_fvFormData"
      runat="server"
      DataKeyNames="id"
      DataSourceID="_sdsData"
      DefaultMode="Edit" 
      Enabled="false" 
      Visible="false"
      Width="100%">
      <EditItemTemplate>
          <asp:Table runat="server">
              <asp:TableRow>
                  <asp:TableCell>
                       <asp:GridView
                            ID="_gvAttachments" 
                            ClientIDMode="Static"
                            DataKeyNames="id"
                            runat="server"
                            DataSourceID="_sdsAttachments" 
                            AutoGenerateColumns="false"
                            AutoGenerateEditButton="false"
                            EmptyDataText="No attachment."
                            ShowHeader="true" 
                            ShowFooter="true"
                            AllowSorting="true"
                            AllowPaging="false" >
                            <HeaderStyle CssClass="header" />
                            <FooterStyle CssClass="footer" />
                            <AlternatingRowStyle CssClass="even" />
                            <RowStyle CssClass="odd" />
                                <Columns>
                                    <asp:TemplateField HeaderText="File">
                                         <ItemTemplate>
                                              <asp:LinkButton 
                                                   ID="_lnkOpenFile"
                                                        ClientIDMode="Static"
                                                        runat="server" 
                                                        Text='<%#Eval("attachment") %>' 
                                                        CommandName="OpenFile" 
                                                        CommandArgument='<%#Eval("id") %>' />
                                                    <br />
                                                    <asp:FileUpload 
                                                        ID="_fuRowAttach" 
                                                        ClientIDMode="Static"
                                                        AllowMultiple="false" 
                                                        onchange="CheckFile(this)" 
                                                        runat="server" />
                                                    &nbsp;
                                                    <asp:Button 
                                                        ID="_btnUpload" 
                                                        ClientIDMode="Static" 
                                                        runat="server" 
                                                        Text="Carica" 
                                                        CommandName="UploadFile" 
                                                        CommandArgument='<%#Eval("id_type")%>'
                                                        CssClass="butt_blu_small" />
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    &nbsp;
                                                </EditItemTemplate>
                                            </asp:TemplateField>
                                </Columns>
                   </asp:TableCell>
              </asp:TableRow> 
          </asp:Table>
      </EditItemTemplate>
  </asp:FormView>

我編寫的javascript代碼如下:

 function CheckAttach(item)
 {
     if (item == null)
         return;

     if (isBlank(item.value))
         return;

     var _btnUpload= item.closest("td").find("[id*=_btnUpload]");

     _btnUpload.show();
 }

我的意圖是僅在_fuRowAttach附加了文件的情況下顯示_btnUpload小部件...不幸的是, item元素似乎未實現.closest()方法,因此無法找到上載按鈕。

有沒有辦法在這種情況下安全地定位_btnUpload

謝謝你的時間。

我找到了解決問題的方法:

  1. 首先,我們需要“隱藏” _btnUpload按鈕。 我們無法使用asp標記的Visibile屬性,因為它與javascript / jquery的屬性管理相沖突。
  2. 要使用.closest.find方法,我們必須從引用的javascript對象中獲取一個jquery對象。

第一步可以通過幾種方法來完成。 在這種情況下,由於按鈕存在於不可預測的網格行數中,因此我使用了一個類引用:

 <asp:Button 
     ID="_btnUpload" 
     ClientIDMode="
     runat="server" 
     Text="Carica" 
     CommandName="UploadFile" 
     CommandArgument='<%#Eval("id_type")%>'
     CssClass="butt_blu_small upload_bott" />

然后在我的javascript代碼中隱藏此類的所有元素:

    $('.upload_bott').hide();

javascript事件處理程序將變為:

function CheckFile(item) {
    if (item == null)
        return;

    var _item = $(item);

    var _btnUpload = _item.closest("tr").find("[id*=_btnUpload]");

    if (isBlank(_item.val()))
    {
         _btnUpload.hide();
         return;
    }

    _btnUpload.show();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM