У меня вид сетки со следующими полями
Вложение (кнопка ссылки) и комментарий (кнопка ссылки)
Когда я нажимаю на вложение, я хочу скачать файл, а когда я нажимаю на Комментарии, я хочу показать комментарий во всплывающем окне. Для этого я использовал модальное всплывающее окно.
Но в соответствии с кодом, который я написал, оба эти варианта работают для первой попытки загрузки страницы позже, либо оба не работают, как решить эту проблему.
Моя сетка выглядит следующим образом
<asp:GridView ID="grdAttaches_Client" runat="server" AutoGenerateColumns="false"
CssClass="GridViewStyle" Width="585px" OnRowCommand="grdAttaches_Client_RowCommand"
OnRowDataBound="grdAttaches_Client_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Attachment Name">
<ItemTemplate>
<asp:LinkButton ID="lblAttachmentName" Text='<%#Eval("AttachmentName")%>' runat="server" CommandName='Attachement' CommandArgument='<%# ((GridViewRow) Container).RowIndex %>' />
<asp:Label ID="lblAttachmentid" runat="server" Visible="false" Text='<%#Eval("Attachmentid")%>'></asp:Label>
</ItemTemplate>
<ItemStyle CssClass="grid-left-txt2" />
</asp:TemplateField>
<asp:TemplateField HeaderText=" Comment">
<ItemTemplate>
<asp:LinkButton ID="LinkButtonEdit" CommandName="ShowPopup" OnClick="lnkcommentsClick" runat="server"
Text='<%# Eval("Comments").ToString().Substring(0, Math.Min(Eval("Comments").ToString().Length, 10)) %>' CommandArgument='<%# ((GridViewRow) Container).RowIndex %>' > </asp:LinkButton>
<asp:Label ID="lblComments1" runat="server" Visible="false" Text='<%#Eval("Comments")%>'></asp:Label>
</ItemTemplate>
<ItemStyle CssClass="grid-left-txt2" />
</asp:TemplateField>
</Columns>
<RowStyle CssClass="RowStyle" />
<EmptyDataRowStyle CssClass="EmptyRowStyle" />
<PagerStyle CssClass="PagerStyle" />
<HeaderStyle CssClass="HeaderStyle" />
<EditRowStyle CssClass="EditRowStyle" />
<AlternatingRowStyle CssClass="AltRowStyle" />
<SelectedRowStyle CssClass="grid_data" />
<PagerSettings Position="TopAndBottom" />
</asp:GridView>
В строке команды я пишу следующим образом
if (e.CommandName == "Click")
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
LinkButton lbl_bs_id = (LinkButton)gvRow.FindControl("lnkcomments");
//Response.Write(lbl_bs_id.Text);
lnkcommentsClick(lbl_bs_id, EventArgs.Empty);
}
else
{
string fname = e.CommandName.ToString();
int aid = Convert.ToInt32(e.CommandArgument.ToString());
FileDownload(fname, true, aid);
}
Мой код в комментариях нажмите
protected void lnkcommentsClick(object sender, EventArgs e)
{
LinkButton lnkdetails = sender as LinkButton;
// lnkdetails=(LinkButton)e.fi
GridViewRow gvrow = (GridViewRow)lnkdetails.NamingContainer;
if (lnkdetails.Text != string.Empty)
{
lblPopUp.Text = lnkdetails.Text;
mpeModalPopUp.Show();
}
}
Но я не могу разобраться с этим несколько раз. Когда страница была загружена, я могу показать всплывающее окно или загрузку файла. Что делать, чтобы работать все время