C# 当Gridview位于更新面板内时,模式弹出窗口无法正常工作
我有一个带有链接按钮的gridview,当您单击它时,会出现一个模式弹出窗口,显示单击的行的详细信息。如果gridview不在更新面板中,则此操作可以正常工作。我必须每秒更新gridview。如果使用“更新”面板,模式弹出窗口将显示为空白。关于如何让它在更新面板中工作,有什么想法吗C# 当Gridview位于更新面板内时,模式弹出窗口无法正常工作,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个带有链接按钮的gridview,当您单击它时,会出现一个模式弹出窗口,显示单击的行的详细信息。如果gridview不在更新面板中,则此操作可以正常工作。我必须每秒更新gridview。如果使用“更新”面板,模式弹出窗口将显示为空白。关于如何让它在更新面板中工作,有什么想法吗 <div class="Info"> <asp:UpdatePanel ID="UpdatePanelMain" runat="server" UpdateMode="Conditional">
<div class="Info">
<asp:UpdatePanel ID="UpdatePanelMain" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="gvMain" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
Width="688px" AllowPaging="True" AutoGenerateColumns="false" OnSelectedIndexChanged="gvMain_SelectedIndexChanged"
Font-Size="14px" PageSize="8" DataKeyNames="TicketId, TicketNumber"
OnRowCommand="gvMain_RowCommand" OnPageIndexChanging="gvMain_PageIndexChanging"
OnRowDataBound="gvMain_RowDataBound">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="TicketId" HeaderText="Id" SortExpression="TicketId"
Visible="false">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="TicketNumber" HeaderText="Ticket #Id" SortExpression="TicketNumber"
Visible="false">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="DisplayNum" HeaderText="Ticket Number" SortExpression="DisplayNum">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbTicketInfo" runat="server" CommandName="Popup" OnClick="lblTicketInfo_Click">LinkButton</asp:LinkButton>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TimerGVMain" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="TimerGVMain" Interval="1000" runat="server" OnTick="TimerGVMain_Tick">
</asp:Timer>
<%--Used for modal popup--%>
<asp:Button ID="btnTarget" runat="server" Style="display: none;" />
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnTarget"
PopupControlID="Div1" DropShadow="True" CancelControlID="btnCloseModal" Drag="True">
</asp:ModalPopupExtender>
<div id="Div1" runat="server" style="background-color: #5D7B9D; color: White; border: #284775 3px solid;
width: 300px; height: 150px; font-size: 10pt; font-family: Verdana;">
<asp:Label ID="Label2" runat="server" Text=""></asp:Label>
<asp:GridView ID="gvTicketInfo" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
AutoGenerateColumns="False">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="Desc" HeaderText="Trans Type" SortExpression="Desc" />
<asp:BoundField DataField="Time" HeaderText="Est Trans Time" SortExpression="Time" />
</Columns>
</asp:GridView>
<%--Button used to close Modal Pop up--%>
<asp:Button ID="btnCloseModal" runat="server" Text="Close" />
</div>
链接按钮
aspx.cs
protected void gvMain_RowCommand(object sender, GridViewCommandEventArgs e)
{
RowIndex = Convert.ToInt32(e.CommandArgument);
if (e.CommandName == "Popup" && e.CommandArgument != null)
{
string displayNo = gvMain.Rows[RowIndex].Cells[3].Text;
//string displayNo = gvMain.DataKeyNames[RowIndex]["DisplayNum"].ToString();
ModalPopupExtender1.Show();
try
{
using (SqlConnection cs = new SqlConnection(connStr))
{
SqlDataAdapter da = new SqlDataAdapter("spClerkUI_ShowAllTrans_inTicket", cs);
da.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddWithValue("@Location", qStatic);
da.SelectCommand.Parameters.AddWithValue("@DisplayNum", displayNo);
DataSet ds = new DataSet();
da.Fill(ds);
gvTicketInfo.DataSource = ds;
gvTicketInfo.DataBind();
Label1.Text = string.Format("<Br>Row # {0}", RowIndex);
}
}
catch (Exception ex)
{
lblStatus.Text = "Modal Error: " + ex.ToString();
}
}
}
protected void gvMain_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton ImageButtonTicketInfo = (LinkButton)e.Row.FindControl("lbTicketInfo");
ImageButtonTicketInfo.CommandArgument = e.Row.RowIndex.ToString();
}
}
protectedvoid gvMain\u行命令(对象发送方,GridViewCommandEventArgs e)
{
RowIndex=Convert.ToInt32(e.CommandArgument);
如果(e.CommandName==“Popup”&&e.CommandArgument!=null)
{
字符串displayNo=gvMain.Rows[RowIndex]。单元格[3]。文本;
//字符串displayNo=gvMain.DataKeyNames[RowIndex][“DisplayNum”].ToString();
ModalPopupExtender1.Show();
尝试
{
使用(SqlConnection cs=newsqlconnection(connStr))
{
SqlDataAdapter da=新的SqlDataAdapter(“spClerkUI_ShowAllTrans_inTicket”,cs);
da.SelectCommand.CommandType=System.Data.CommandType.StoredProcess;
da.SelectCommand.Parameters.AddWithValue(“@Location”,qStatic);
da.SelectCommand.Parameters.AddWithValue(“@DisplayNum”,displayNo);
数据集ds=新数据集();
da.填充(ds);
gvTicketInfo.DataSource=ds;
gvTicketInfo.DataBind();
Label1.Text=string.Format(“
行#{0}”,行索引);
}
}
捕获(例外情况除外)
{
lblStatus.Text=“模式错误:+ex.ToString();
}
}
}
受保护的void gvMain_RowDataBound(对象发送方,GridViewRowEventArgs e)
{
如果(e.Row.RowType==DataControlRowType.DataRow)
{
LinkButton ImageButtonTicketInfo=(LinkButton)e.Row.FindControl(“lbTicketInfo”);
ImageButtonTicketInfo.CommandArgument=e.Row.RowIndex.ToString();
}
}
将此添加到页面目录之后
<%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>
我认为计时器需要在更新面板中您是否使用ajax控件工具包中的模式弹出窗口。此外,在使用“”引用时,请确保其标记前缀为“asp”
Div1.Visible = true;
gvTicketInfo.Visible = true;