我在一个DataGrid里面定义了一个HyperLinkColumn列,连接到DataSourceEdit(编辑界面)
代码如下:
<asp:BoundColumn DataField="DS_Id" HeaderText="用户ID" Visible="false"></asp:BoundColumn>
<asp:HyperLinkColumn NavigateUrl="~/UI/DataSource/DataSourceEdit.aspx" Text="编辑"></asp:HyperLinkColumn>请问我在DataSourceEdit.aspx.cs里面怎么能够取到DS_Id,这个HyperLinkColumn 应该怎么写
代码如下:
<asp:BoundColumn DataField="DS_Id" HeaderText="用户ID" Visible="false"></asp:BoundColumn>
<asp:HyperLinkColumn NavigateUrl="~/UI/DataSource/DataSourceEdit.aspx" Text="编辑"></asp:HyperLinkColumn>请问我在DataSourceEdit.aspx.cs里面怎么能够取到DS_Id,这个HyperLinkColumn 应该怎么写
Request.QueryString["DS_Id"]
这个DataGrid是在DataSourceList.aspx里面,
在DataSourceEdit.aspx.cs能通过Request.QueryString["DS_Id"]取到的?
<ItemTemplate>
<asp:HyperLinkColumn CommandArgument='<%# Bind("DS_Id") %>'
ID="btnEditG" runat="server" CommandName="EditRow" AlternateText="编辑" OnClick="btnEditG_Click" />
</ItemTemplate> 在后台页面:
protected void btnEditG_Click(object sender, ImageClickEventArgs e)
{string id = ((HyperLinkColumn)sender).CommandArgument;}
利用CommandArgument属性 在“编辑”按钮点击事件里面通过获取该属性值去id号。
在后台同Request.QueryString["DS_Id"]是可以取到1的,现在是怎么把这个Id变成用户点击列的DS_Id,就是我在上面定义的 <asp:BoundColumn DataField="DS_Id" HeaderText="用户ID" Visible="false"></asp:BoundColumn>
用CommandArgument属性赋值,在编辑事件里((HyperLinkColumn)sender).CommandArgument都能获取到你所点击列的ID号
<asp:HyperLinkColumn NavigateUrl="~/UI/DataSource/DataSourceEdit.aspx?DS_Id=<%#Eval("DS_Id")%>" Text="编辑"></asp:HyperLinkColumn>错误提示是:
System.Web.UI.WebControls.DataGridColumnCollection”内不允许包含文字内容(“<asp:HyperLinkColumn NavigateUrl="~/UI/DataSource/DataSourceEdit.aspx?DS_Id=”)。什么情况
这样试试呢
至于HyperLinkColumn 你需要找一下类似的属性去处理。
估计你点击链接出错可能是没有DataNavigateUrlFields 这个属性造成的。
NavigateUrl=‘’写后貌似可以运行,但是在取DS_Id的时候,取到的是<%
这又是什么情况
14楼应该是可以取到DS_id的值。
<asp:HyperLinkColumn NavigateUrl='~/UI/DataSource/DataSourceEdit.aspx?DS_Id=<%# Eval("DS_Id")%>' Text="编辑"></asp:HyperLinkColumn>不行吗?
你直接这样看下能不能取到DS_Id的值,如果能取到再在前面加URL
'<%#"MarketEvaluate.aspx?ProjectId="+ Eval("ProjectID")%>'
<Columns>
<asp:TemplateField>
<ItemTemplate>
<a href="DataSourceEdit.aspx?DS_Id=<%#Eval("DS_ID")%>">编辑</a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
你在DataVIEW里面加一列模板页加一个连接不一定要用<asp:HyperLinkColumn>这个控件
<asp:HyperLinkColumn ataNavigateUrlFormatString='~/UI/DataSource/DataSourceEdit.aspx?DS_Id={0}' DataNavigateUrlField="DS_Id" Text="编辑"></asp:HyperLinkColumn>