0
我有一個datalist,它顯示圖像的縮略圖和一個下載圖標,當用戶點擊下載圖標時,系統下載的圖像位於客戶端。如何在Page_Load事件中找到位於datalist itemtemplate內的控件?
<asp:DataList ID="dtlSearchDetails" runat="server" OnItemCommand="dtlSearchDetails_ItemCommand" OnItemDataBound="dtlSearchDetails_ItemDataBound">
<ItemTemplate>
<asp:ImageButton runat="server" ID="dtlImageCol" ImageUrl='<%# "~/uploads/thumbnails/" + Eval("ImageName") %>' /><br />
<asp:Label runat="server" ID="dtusage" Text='<%# Eval("usage") %>' Style="color: #CC121B;"></asp:Label><br />
<asp:ImageButton runat="server" ID="dtlImgDownload" CommandName="dtlImgDownload" CommandArgument='<%# Eval("ImageName") %>' ImageUrl="images/download.png" style="height:20px; width:20px;"/>
</ItemTemplate>
</asp:DataList>
所有的作品也只是問題是,DataList控件被包裹在裏面updatepannel,因此爲了在用戶端下載圖像我需要註冊在Page_Load事件控制:
ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(dtlImgDownload);
自dtlImgDownload
是數據列表裏,我總是"The name dtlImgDownload doesn't exists in current context."
我嘗試了幾種方法可以找到像dtlSearchDetails.FindControl("dtlImgDownload ")
控制得到一個錯誤,但它總是返回null。
我也試過
if(dtlSearchDetails.FindControl("dtlImgDownload ") != null)
{
ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(dtlSearchDetails.FindControl("dtlImgDownload "));
}
但相同的結果,它始終爲空。
請點我到正確的方向。
控制貌似代碼是能夠找到的ImageButton,但仍無法能夠註冊它我用這樣的: '如果(dtlSearchDetails.Items.Count> 0){ 的foreach (在dtlSearchDetails.Items的DataListItem LI) { 的ImageButton IMG =(的ImageButton)li.FindControl( 「dtlImgDownload」); ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(img); 休息; } }' – Vishal
沒關係其工作看起來有些其他問題,感謝您的時間了很多蒂姆。 – Vishal