gpt4 book ai didi

c# - 打开一个包含来自 gridview 单元格的详细信息的 ajax modalpopup

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:34 25 4
gpt4 key购买 nike

我有一个包含约会信息的 gridview。我想要做的是在每个单元格中有一个链接按钮(将在运行时创建)并打开一个显示约会详细信息的模式弹出窗口。任何帮助将不胜感激。

到目前为止我已经知道了,但它不会触发链接按钮

<asp:GridView ID="Grd" runat="server" AutoGenerateColumns="true" onrowdatabound="Grd_RowDataBound"></asp:GridView><asp:Button ID="btnShowPopup" style="display:none" runat="server"  />
<ajaxToolkit:ModalPopupExtender
ID="ModalPopupExtender1" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlpopup" CancelControlID="ImgCancel" ></ajaxToolkit:ModalPopupExtender>
<asp:Panel ID="pnlpopup" runat="server" Width="400px" ><!--Show Details--!>
<asp:ImageButton ID="imgCancel" AlternateText="cancel" Height="25" Width="25" runat="server" ImageAlign="Right" />
</asp:Panel>

代码隐藏

protected void Grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Split out the visit details & format
for (int i = 0; i <= e.Row.Cells.Count - 1; i++)
{

LinkButton lnk = new LinkButton();
lnk.Text = "Details for:" + "<br />" + e.Row.Cells[i].Text;

lnk.CommandName = "ShowDetails";
lnk.Command += LinkButton_Command;
e.Row.Cells[i].Controls.Add(lnk);


}



}
}
protected void LinkButton_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "ShowDetails")
{

LinkButton btndetails = sender as LinkButton;

GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;

this.ModalPopupExtender1.Show();


}
}

最佳答案

最重要的是,您需要确保在回传中重新创建动态 LinkBut​​ton 控件,以便正确连接事件。由于您在 Grd_RowDataBound 处理程序中创建了 LinkBut​​tons,只有在您调用 BindData() 时才会调用它(并且您没有调用它回发),您的事件不会连线。所以如果你的代码看起来像这样:

if (!IsPostBack)
{
Grd.BindData();
}

尝试删除 if(!IsPostBack) 检查,并始终在 Page_Load 上调用 BindData()。

关于c# - 打开一个包含来自 gridview 单元格的详细信息的 ajax modalpopup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13241705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com