我需要在Button
ASP.NET
行内显示/隐藏GridView
。
这个代码与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();
}
我的目的是仅在_btnUpload
附加了文件时显示_fuRowAttach
窗口小部件...不幸的是item
元素似乎没有实现.closest()
方法因此我无法找到上传按钮。
有没有办法在此上下文中安全地找到_btnUpload
?
感谢您的时间。
答案 0 :(得分:0)
我找到了解决问题的方法:
_btnUpload
按钮。我们无法使用Visibile
标记的asp
属性,因为它与javascript / jquery的属性管理冲突。.closest
和.find
方法,我们必须从引用的jquery
对象中获取javascript
对象。第一步可以通过几种方式完成。在这种情况下,由于按钮存在于不可预测的网格行数中,因此我使用了类引用:
<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();
}