![](/img/trans.png)
[英]Fetch the id of the current row by clicking on the html input button control inside the gridview, but without performing a postback
[英]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" />
<asp:Button
ID="_btnUpload"
ClientIDMode="Static"
runat="server"
Text="Carica"
CommandName="UploadFile"
CommandArgument='<%#Eval("id_type")%>'
CssClass="butt_blu_small" />
</ItemTemplate>
<EditItemTemplate>
</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
?
謝謝你的時間。
我找到了解決問題的方法:
_btnUpload
按鈕。 我們無法使用asp
標記的Visibile
屬性,因為它與javascript / jquery的屬性管理相沖突。 .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.