добавить гиперссылку в сетку - PullRequest
1 голос
/ 26 ноября 2011

Я создаю веб-страницу с использованием C # и asp.net У меня есть простая база данных sqlite. У меня есть сетка, где я показываю просто две категории книг. Две категории Художественная литература технический

Я хотел бы назначить ссылку на эти категории, чтобы пользователь мог быть перенаправлен на новую страницу.

Вот снимок данных, отображаемых в виде сетки. где я хочу добавить ссылку на художественную и техническую, чтобы перенаправить на новую страницу. enter image description here Это мой набор данных и сетка.

 DataSet dsgrid;
 dsgrid = (DataSet)Cache["GridViewDataSet"];
 if (dsgrid == null)
 {
 dsgrid = GetDataSet();  //call function
 Cache["GridViewDataSet"] = dsgrid;

 }
 else
 {

 }
 //bind our cache data to a datasource
 GridView1.DataSource = dsgrid.Tables[0];
 GridView1.DataBind();
 }
 catch (Exception ex)
 {
 this.lblError.Text = ex.Message;
 }

 }

 private DataSet GetDataSet()
 {

        String connectionString = "Data Source=" + Server.MapPath(@"~\App_Data\bookDB.db");
        String selectCommand = "Select * from Category";
        SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(selectCommand, connectionString);

        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);

        //GridView1.DataSource = ds;
       // GridView1.DataBind();

        return ds;

    }

Спасибо

Ответы [ 4 ]

1 голос
/ 26 ноября 2011

это код разметки, вам нужно добавить гиперссылку на элемент управления gridview внутри коллекции IntemTempalte и добавить выражение привязки к свойству text содержащихся в нем элементов управления

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="128px">
        <Columns>
        <asp:TemplateField HeaderText="Code">
        <ItemTemplate>
        <asp:Label ID="lblCodigo" runat="server" Text='<%#Eval("columnNae")%>'></asp:Label>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Name">
        <ItemTemplate>
       <asp:HyperLink ID="link" runat="server" Text='<%#Eval("columnNae") %>' NavigateUrl="http://nudierweb.somee.com"></asp:HyperLink>
        </ItemTemplate>
        </asp:TemplateField>

        </Columns>
    </asp:GridView>
1 голос
/ 26 ноября 2011

Вот несколько вариантов, выбор которых будет зависеть от необходимой вам гибкости.

Встроенный столбец кнопок:

    <asp:GridView >
        <Columns>
            <asp:ButtonColumn DataField="some_field" Visible="false" ButtonType="linkButton" />         
        </Columns>
    /<asp:GridView >

Шаблон столбца: (Это даст вам наибольшую гибкость.)

<asp:GridView>
    <Columns>
        <asp:TemplateField HeaderText="Its a link!">
            <ItemTemplate>
                <asp:LinkButton ID="SomeName" runat="server" Text=''>
            </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView> 

Наслаждайтесь!

0 голосов
/ 20 марта 2014

Попробуйте вот так

<asp:HyperLinkField DataTextField="Value of column you want to make as HYPERLINK" HeaderText="COLUMN NAME" runat="server" DataNavigateUrlFields="Value you want to pass to other page(fname)" DataNavigateUrlFormatString="~/demo.aspx(another page name)?fname**strong text**={0}"/>

Например:

<asp:HyperLinkField DataTextField="stid" HeaderText="stid" Target="_self" runat="server" DataNavigateUrlFields="fname" DataNavigateUrlFormatString="~/demo.aspx?fname={0}"/>

0 голосов
/ 26 ноября 2011

Вам необходимо использовать HyperLinc control

<asp:HyperLink id="hyperlink1" NavigateUrl="http://www.yournavigateurl.com"
              Text="Your Hyperlink text" runat="server"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...