【问题标题】:How to make a hyperlink through GridView column value?如何通过 GridView 列值创建超链接?
【发布时间】:2011-11-10 15:05:53
【问题描述】:

我希望在这里用户可以通过选择heading 来查看问题下的答案。问题应该是在页面Answer.aspx 上重定向我的超链接。我的意思是当用户将光标移到How to do this? 上时,它应该将用户重定向到所需的页面。我该怎么做?

这里是代码

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
       DataSourceID="SqlDataSource1" Width="100%" BorderStyle="None">
       <Columns>  
     <asp:BoundField DataField="QuestionHEAD" HeaderText="Question"
                                        SortExpression="QuestionHEAD" HeaderStyle-ForeColor="white" HeaderStyle-BackColor="Brown"/>
                                    <asp:BoundField DataField="Problem" HeaderText="Problem" 
                                        SortExpression="Problem" HeaderStyle-ForeColor="white" HeaderStyle-BackColor="Brown" />
                                    <asp:BoundField DataField="Forum" HeaderText="Forum" SortExpression="Forum" HeaderStyle-ForeColor="white" HeaderStyle-BackColor="Brown"/>
                                    <asp:BoundField DataField="Username" HeaderText="Asked By" 
                                        SortExpression="Username" HeaderStyle-ForeColor="white" HeaderStyle-BackColor="Brown" />
                                </Columns>
                            </asp:GridView>
                            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                                ConnectionString="<%$ ConnectionStrings:connectionstring %>" 
                                SelectCommand="SELECT [QuestionHEAD], [Problem], [Forum], [Username] FROM [Question]">
                            </asp:SqlDataSource>

【问题讨论】:

  • 请发布您当前的GridView标记/编码
  • 您是说您希望Question 列包含链接吗?
  • @james johnson 是的,我想这样做。与 SO 一样,我们点击问题,它会以我想要的方式重定向我们的答案。有可能吗?

标签: c# asp.net gridview


【解决方案1】:

您可以为此使用HyperLinkField

<asp:HyperLinkField DataNavigateUrlFormatString="/somepage.aspx?a={0}&b={1}" DataNavigateUrlFields="Column1, Column2" />

【讨论】:

  • ab 是干什么用的。是否将两列都设置为超链接?
  • 这只是一个演示如何将数据源中的信息合并到 URL 中的示例。在您的情况下,您可能想要传递 QuestionID 或其他东西。
  • 毫无疑问ID如何通过uniqueIdentifier生成?
  • 您的表格上没有主键,或者没有任何东西可以唯一标识每个问题?
  • 不,它没有,因为我想使用内部数据库并且没有使用身份的选项。
【解决方案2】:

试试这样的

Eval("id") should be the question id and Eval("Question") should be the question field in your database


 <asp:TemplateField HeaderText="Question" HeaderStyle-HorizontalAlign="Center"  ItemStyle-HorizontalAlign="Center">
        <ItemTemplate>
            <a href="Answers.aspx?ID=<%#Eval("id")%>"> <%#Eval("Question")%></a>
        </ItemTemplate>
    </asp:TemplateField>

【讨论】:

  • 毫无疑问ID如何通过uniqueIdentifier生成?
  • 你的数据库表怎么样,没有主键吗?
  • 不,它没有,因为我想使用内部数据库并且没有使用身份的选项。我正要问这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多