有没有办法将控件(在gridview的模板字段中)设置为模态弹出扩展器的目标控件?我试着这样:
Full postback triggered by LinkButton inside GridView inside UpdatePanel
但是我得到一个例外,因为value参数不能为null。请详细说明。
网格:
<asp:GridView ID="grdTemp" runat="server" AllowPaging="True" AllowSorting="True"
DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="TempNo" OnRowCommand="grdDULead_RowCommand" OnRowDataBound="grdDULead_RowDataBound">
<FooterStyle BackColor="White" CssClass="GridFooter" />
<Columns>
<asp:TemplateField><ItemTemplate><asp:LinkButton ID="grDULeadlnkSelect" runat="server" ForeColor="Red" OnClick="grDULeadlnkSelect_Click" CausesValidation="False" CommandName="selectrow">select</asp:LinkButton></ItemTemplate>
</asp:GridView>
扩展器:
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="grDULeadlnkSelect" PopupControlID="pnlCDAMTClar" BackgroundCssClass="modalBackground">
</cc1:ModalPopupExtender>
代码隐藏:
一开始我收到错误could not find control "grDULeadlnkSelect"
。然后我尝试注册按钮,但我收到错误value cannot be null
。
protected void grdTemp_RowDataBound(object sender, GridViewRowEventArgs e)
{ // getting err at below line.
LinkButton lb = e.Row.FindControl("grDULeadlnkSelect") as LinkButton;
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(lb);
}
答案 0 :(得分:0)
你可以做的只是为ModalPopUpExtender设置一个虚拟控件ID作为TargetControlID,并使该虚拟控件不可见。
现在在GridView的RowCommand事件上写:
ModalPopupExtender1.Show();
希望这能解决您的问题。