Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在NavigateURL中正确包含两个动态项?_Asp.net_Gridview - Fatal编程技术网

Asp.net 如何在NavigateURL中正确包含两个动态项?

Asp.net 如何在NavigateURL中正确包含两个动态项?,asp.net,gridview,Asp.net,Gridview,我有一个使用绑定、超链接和模板字段的网格视图 我正试图弄清楚如何在NavigateURL中正确地包含两个动态项,一个是Lo-Fi:HyperLink控件,另一个是Hi-Fi:HyperLink控件。我知道如何使用HyperLinkField字段,就像在后两列中一样,但我不能在模板列中使用它 我需要将用于text属性的项连接到当前{1}所在的URL的末尾 <asp:GridView ID="gvLocker" runat="server" HeaderStyle-BackColor="Gol

我有一个使用绑定、超链接和模板字段的网格视图

我正试图弄清楚如何在NavigateURL中正确地包含两个动态项,一个是
Lo-Fi:HyperLink
控件,另一个是
Hi-Fi:HyperLink
控件。我知道如何使用HyperLinkField字段,就像在后两列中一样,但我不能在模板列中使用它

我需要将用于text属性的
项连接到当前{1}所在的URL的末尾

<asp:GridView ID="gvLocker" runat="server" HeaderStyle-BackColor="Goldenrod" 
        HeaderStyle-ForeColor="DarkBlue" AlternatingRowStyle-BackColor="Cornsilk" 
            Font-Names="Verdana,arial,helvetica" AutoGenerateColumns="False" Font-   Size="13px" Width="640px" BorderColor="#404040">
            <Columns>   
                <asp:BoundField DataField="memid" HeaderText="MemID" ReadOnly="True" SortExpression="memid"
                    Visible="False" HeaderStyle-Font-Size="13px" />                         
                <asp:HyperLinkField  DataNavigateUrlFormatString="myLockerEditSong.aspx?ID={0}&amp;li={1}"
                    DataTextField="EditIt" DataNavigateUrlFields="memid,lockid" HeaderStyle-Font-Size="13px">
                    <ItemStyle Width="65px" Font-Size="13px" />
                    </asp:HyperLinkField>
                <asp:HyperLinkField  DataNavigateUrlFormatString="myLockerDeleteSong.aspx?ID={0}&amp;li={1}"
                    DataTextField="Delete" DataNavigateUrlFields="memid,lockid" HeaderStyle-Font-Size="13px">
                    <ItemStyle Width="65px" Font-Size="13px" />
                </asp:HyperLinkField>
                <asp:TemplateField HeaderText="Song Information" HeaderStyle-Font-Size="13px">
              <ItemTemplate>
                        <strong><asp:Label ID="Label1" runat="server" Text='<%# Eval("Locker_Title") %>'></asp:Label></strong><br />
                        Lo-Fi:<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("memid", "/uploads/{0}/Locker/LoFi/{1}") %>'
                            Text='<%# Eval("Locker_LO_Filename") %>' Font-Size="13px"></asp:HyperLink><br />
                        Hi-Fi:<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("memid", "/uploads/{0}/Locker/HiFi/{1}") %>'
                            Text='<%# Eval("Locker_HI_Filename") %>' Font-Size="13px"></asp:HyperLink>                                
                    </ItemTemplate>
                    <ItemStyle Width="350px" Font-Size="13px" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="File Information" SortExpression="Locker_UploadDate" HeaderStyle-Font-Size="13px">
                    <ItemTemplate>
                       <strong>Uploaded:</strong> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Locker_UploadDate") %>'></asp:Label><br />
                       <strong>Modified:</strong> <asp:Label ID="Label3" runat="server" Text='<%# Eval("Locker_DateLastModified") %>'></asp:Label>
                       <ItemStyle Font-Size="13px" />
                    </ItemTemplate>                        
                </asp:TemplateField>                    
            </Columns>        
        <HeaderStyle BackColor="#FFDF59" ForeColor="Maroon" HorizontalAlign="Left" />
        <AlternatingRowStyle BackColor="PaleGoldenrod" />
    </asp:GridView>


低保真度:
高保真: 上传:
已修改:
查看
GridView
事件。您需要这样的东西(未经测试):

请使用以下命令,而不是使用

<%# FormatHiFi(DataBinder.Eval(Container.DataItem, "Locker_Title"), DataBinder.Eval(Container.DataItem, "OtherStringName"))%>

同样也可以用于低保真。我希望这有帮助,如果没有,至少指向正确的方向。

这也会起作用。但我认为目标是分配一个复合字符串,而不仅仅是一个数据项。:)rwwilden-谢谢你的意见,但Craigs的建议更符合我的需要。谢谢你的时间,两个都可以。从未真正考虑过使用像这样的页面方法。Craig-除了必须为VB.net重写并在函数调用中添加正确的字段名之外,您的建议工作得非常好。在所有的压力下,我忘记了可以从templateitem调用函数。非常感谢你的帮助。
<%# FormatHiFi(DataBinder.Eval(Container.DataItem, "Locker_Title"), DataBinder.Eval(Container.DataItem, "OtherStringName"))%>
protected string FormatHiFi(object str1, object str2) 
{
   return string.Format("/uploads/{0}/Locker/HiFi/{1}", str1.ToString(), str2.ToString())
}