【问题标题】:Multiple DataNavigateUrlFields... one from datasource, one from drpdownlist多个 DataNavigateUrlFields... 一个来自数据源,一个来自下拉列表
【发布时间】:2012-02-16 00:08:16
【问题描述】:

假设我在这样的页面上有一个下拉列表和一个网格视图

<asp:GridView ID="gvCategories" runat="server" >
<Columns>
<asp:HyperLinkField DataTextField="CategoryName"            DataNavigateUrlFields="CategoryID"     DataNavigateUrlFormatString="~/Learning.aspx?categoryID={0" />
</Columns>
</asp:GridView>

我想将此添加到 URL: &view=

我该怎么做?

【问题讨论】:

    标签: asp.net gridview hyperlink


    【解决方案1】:

    我会将 TemplateField 用作:

    <asp:GridView ID="gvCategories" runat="server" >
    <Columns>
       <asp:TemplateField>
          <ItemTemplate>
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("CategoryName", "~/Learning.aspx?categoryID={0}")+" &view=" + DropDownList1.SelectedValue %>' 
                            Text="Goto Page"></asp:HyperLink>
           </ItemTemplate>
       </asp:TemplateField>
     </Columns>
    </asp:GridView>
    

    记住 DropDownList.SelectedValue 是在 postBack 获得的,所以链接是在那个时候构建的。要在下拉列表的值更改时动态更改链接,请设置下拉列表的 AutoPostBack="true"。

    【讨论】:

    • 谢谢,感谢您的回复。我确实对 templateField 进行了试验,但无法获得正确的语法以从 dropdownlist 中检索所选值。我已经尝试了一堆......你有机会提供样品吗?
    • 我已经测试了上面的代码并且没问题。我可以查看下拉列表的标记并确保 CategoryName 不为空。 gridView 正在获取数据吗?确保将 AutoPostBack 设置为 true。
    • 感谢所有反馈。我最终通过调整超链接解决了我需要的问题,如下所示:
    • 忽略之前的评论。感谢所有的反馈。我最终通过调整项目模板中的超链接解决了我需要的问题,如下所示:' NavigateURL='' '
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多