вставьте ссылки в gridview - PullRequest
1 голос
/ 01 февраля 2012

У меня есть сетка со списком из 16 документов, которые могут меняться в зависимости от человека, использующего приложение.Меня попросили изменить три конкретные записи в сетке, если они существуют, на ссылки, открывающие документы.

Как проверить эти три документа в сетке (столбец называется «Артефакт») и вставитьправильная ссылка для каждого из трех документов вместо текста по умолчанию?

    <asp:BoundField HeaderText="Artifact" DataField="ArtifactName" Visible="true" HeaderStyle-Width="300px"  HeaderStyle-HorizontalAlign="Left"></asp:BoundField>

Такие же ссылки доступны в других разделах нашего веб-сайта.Вот как они реализованы на других страницах

<asp:LinkButton 
ID="hypLnkAffidRelease2" 
runat="server" 
Text="Affidavit and Release form" 
/>


var url = ResolveUrl("~/FormViewer.aspx");

       this.lnkDownloadReleasefrm.Attributes.Add("onclick", " { popup=window.open('" + url + "?Form=4','Viewer','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=800, height=600'); popup.focus(); return false; }");

1 Ответ

1 голос
/ 01 февраля 2012

Вы можете создать TemplateField с двумя ItemTemplate (Label & HyperLink)

Метка более или менее похожа на BoundField после визуализации.

<asp:TemplateField HeaderText="Select">
    <ItemTemplate>
        <asp:Label ID="NoLink" runat="server"></asp:Label>
        <asp:LinkButton ID="WithLink" runat="server" OnClick="Go_Click"/>
    </ItemTemplate>               
</asp:TemplateField>

Когда вы связываете сетку

GridView.DataSouce = theData;
GridView.DataBind();

//index refers to the column number of the template field
for (int i=0; i<in GridView.Rows.Count; i++)
{
    Label a = (Label)GridView.Rows[i].Cells[index].FindControl("NoLink");
    LinkButton b = (LinkButton)GridView.Rows[i].Cells[index].FindControl("WithLink");

    if (// link exists)
    {
        a.Visible = false;
        b.Visible = true;
    }

    else)
    {
        a.Visible = true;
        b.Visible = false;
    }  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...