我有一个从数据库中正确获取数据的Gridview。我想在每行中添加一个图像,当单击该图像时,该图像将链接到另一个页面,并且该链接将附带一个参数。如果我使用HyperLinkField,我会使用DataNavigateUrlFormatString属性,但使用ButtonField时它不起作用。我是不是错过了什么傻事?我的代码在下面。非常感谢。
<asp:Panel runat="server" ID="pnlresults" Visible="false">
<asp:SqlDataSource runat="server" ID="requestedDataSource"
CancelSelectOnNullParameter="false"
ConnectionString="<%$ ConnectionStrings:UnitySQLServerConnectionString %>"
SelectCommand="SELECT PriceListID, PriceListCode, PriceListName, isActive, StartDate, EndDate FROM [SQLQA].[dbo].[Price_Header]">
</asp:SqlDataSource>
<asp:GridView runat="server"
AllowSorting="true"
AutoGenerateColumns="false"
DataSourceID="requestedDataSource"
CssClass="searchOutput"
HeaderStyle-HorizontalAlign="Left"
RowStyle-HorizontalAlign="Left"
AlternatingRowStyle-HorizontalAlign="Left">
<Columns>
<asp:BoundField DataField="PriceListCode" HeaderText="Code" />
<asp:BoundField DataField="PriceListName" HeaderText="Name" />
<asp:BoundField DataField="isActive" HeaderText="Active" />
<asp:BoundField DataField="StartDate" HeaderText="Start Date" />
<asp:BoundField DataField="EndDate" HeaderText="End Date" />
<asp:ButtonField HeaderText="Copy" ImageUrl="../../Images/plus.gif" ButtonType="Image" CommandName="" />
<asp:HyperLinkField DataNavigateUrlFields="PriceListID" HeaderText="Copy"
DataNavigateUrlFormatString="~/?Order_No={0}"
Text="Copy" />
</Columns>
</asp:GridView>
</asp:Panel>
ButtonField没有DataNavigateUrlFormatString属性。所以不,它不会起作用。
如果你想在超链接中添加图像,你可以这样做:
.MyStyle {
background-image: url('Images/Test.bmp');
background-repeat: no-repeat;
background-position: center center;
width:100px;
padding-left:50px;
padding-right:50px;
}
<asp:HyperLinkField ControlStyle-CssClass="MyStyle" DataNavigateUrlFields="ImageUrl" HeaderText="Test" />