您好我有这个gridview:
<asp:GridView ID="grd1" width="100%" AutoGenerateColumns="False" runat="server" EnableModelValidation="True" CellPadding="4" ForeColor="#333333" GridLines="None" >
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:HyperLinkField DataTextField="Plan Reference" HeaderText="Plan Reference" SortExpression="Plan Reference" NavigateUrl="https://www.yahoo.com?itemid="/>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center"/>
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
当我在计划参考栏上指明时,该网址会出现在窗口的左下角,如下所示:https://www.yahoo.com?itemid=
我想要在其上指示的行的id,显示在窗口左下角的url中,我该如何编码?
这是我的CS代码:
DataTable GetData()
{
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWeb = oSiteCollection.OpenWeb();
SPList oSpList = oWeb.Lists["Drill Plans"];
SPListItemCollection oSpListItemCollection = oSpList.Items;
DataTable dt = new DataTable();
try
{
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Plan Reference", typeof(String));
DataRow dataRow;
foreach (SPListItem oSplistItem in oSpListItemCollection)
{
//DateTime date = DateTime.Now;
//string currentDate = String.Format("{0:dddd, MMMM dd, yyyy}", date);
dataRow = dt.Rows.Add();
dataRow["ID"] = oSplistItem["ID"].ToString();
dataRow["Plan Reference"] = oSplistItem["Plan Reference"].ToString();
}
return dt;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Managers Approval" + ex.Message.ToString());
return dt;
}
}
请帮帮我。 我需要帮助重要的工作
答案 0 :(得分:0)
要将绑定项的ID
附加到网址,您可以使用Container.DataItem
,如下所示:
<asp:HyperLinkField
DataTextField="Plan Reference"
HeaderText="Plan Reference"
SortExpression="Plan Reference"
NavigateUrl='https://www.yahoo.com?itemid=<%# Container.DataItem("ID") %>'/>
更多信息here。
修改强>
为了使上述功能正常工作,您需要将GridView
绑定到从方法GetData()
返回的数据表中。在Page_Load
方法中,您应该使用以下内容:
if(!IsPostback)
{
grd1.DataSource = GetData();
grd1.DataBind();
}
另一种方法是处理GridView
的{{3}}事件并在其中设置NavigateUrl
。为此,您需要为HyperLinkField
分配一个ID(让我们称之为“链接”)。这是代码:
protected void OnGridViewRowDataBound(object sender, GridViewRowEventArgs e)
{
var hyperLink = e.Row.FindControl("link") as HyperLinkField;
if(hyperLink != null)
{
var row = e.Row.DataItem as DataRow;
hyperlink.NavigateUrl = String.Format("https://www.yahoo.com?itemid={0}", row["ID"]);
}
}
当然,不要忘记在标记中添加事件处理程序:
<asp:GridView ID="grd1" RowDataBound="OnGridViewRowDataBound" ..
</asp:GridView>