我正在使用 VB.NET
我得到一个包含以下列的数据表
<chartingToolkit:Chart Grid.RowSpan="2" Name="GrapherChart">
<chartingToolkit:Chart.Axes>
<chartingToolkit:LinearAxis Orientation="X" Interval="50" Minimum="{Binding Xmin}" Maximum="{Binding Xmax}" FontSize="10" Title="Phase"/>
<chartingToolkit:LinearAxis Orientation="Y" Interval="500" Minimum="{Binding Ymin}" Maximum="{Binding Ymax}" FontSize="10" ShowGridLines="True" Title="Amplitude"/>
</chartingToolkit:Chart.Axes>
<chartingToolkit:ScatterSeries
DependentValuePath="Amplitude"
IndependentValuePath="PhaseAngle"
ItemsSource="{Binding Data}">
<chartingToolkit:ScatterSeries.DataPointStyle>
<Style TargetType="chartingToolkit:ScatterDataPoint">
<Setter Property="Background" Value="{Binding Colour}"></Setter>
</Style>
</chartingToolkit:ScatterSeries.DataPointStyle>
</chartingToolkit:ScatterSeries>
<chartingToolkit:Chart.LegendStyle>
<Style TargetType="Control">
<Setter Property="Width" Value="0"/>
<Setter Property="Height" Value="0"/>
</Style>
</chartingToolkit:Chart.LegendStyle>
</chartingToolkit:Chart>
计数为ID DESC Hyperlink COUNT
或0
如果计数为1
我需要做
0
在超链接列
中我没有对databind事件做任何显式操作。 我填充转发器的方式是:
NavigateUrl='<%#"~/Create.aspx?ID=" + Eval("ID")%>' Text="Create"
当前函数只是获取一个sql表
rptrTask.DataSource = PpltDefGrid(Trim(v))
有人可以给我内联代码如何做到这一点?如果不知道我怎么能通过背后的代码这样做(请举例)?我尝试过一些/ Container.data方法..但是没有成功。真的很感激任何帮助。
答案 0 :(得分:0)
您可以在后面的代码中使用gridview的RowDatBound()事件。
protected void rptrTask_RowDataBound(object sender, GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
HyperLink hl = (HyperLink)e.Row.FindControl("hyperlinkID");
if(DataBinder.Eval(e.Row.DataItem, "COUNT") == "0")
{
hl.NavigateUrl = "~/Create.aspx?ID=" + DataBinder.Eval(e.Row.DataItem, "ID");
}
}
}
答案 1 :(得分:0)
我将逻辑提取到变量(bShowURl)以增强可控性。还会进行额外检查以确保超链接存在。
Protected Sub yourGridview_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim currentDataItem As yourDataItemDataType = e.Row.DataItem
Dim bShowUrl = IIF(currentDataItem.ID = 0, True, False)
If bShowUrl Then
Dim hyperlink As HyperLink = CType(e.Row.FindControl("yourHyperlinkControlId"), HyperLink)
If hyperlink IsNot Nothing Then
hyperlink.NavigateUrl = "~/Create.aspx?ID=" + currentDataItem.ID.ToString()
End If
End If
End If
End Sub
答案 2 :(得分:0)
我正在编辑我的答案,那么在这种情况下RowDataBound
对你来说很容易。
像这样修改你的GridView: -
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
我添加了"OnRowDataBound="GridView1_RowDataBound"
在.aspx页面中,您可以为hyperlink
<asp:TemplateField HeaderText="Count">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="#" Text='<%#Eval("ID") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
在.aspx.vb页面中,这样写: -
Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim HyperLink1 As HyperLink = DirectCast(e.Row.FindControl("HyperLink1"), HyperLink)
If DataBinder.Eval(e.Row.DataItem, "COUNT") = "0" Then
HyperLink1.NavigateUrl = "~/Create.aspx?ID=" + DataBinder.Eval(e.Row.DataItem, "ID")
End If
End If
End Sub
希望得到这个帮助。