查看: 817|回复: 16
|
[asp.net]datagrid hyperlinkcolumn怎样可以拿到别个column的data?
[复制链接]
|
|
请问一下,如果我在out column那边click, 我可以拿到department column的text麽?
由于,我的in和out的column的数字是一直在变的。所以,我用Request.QueryString拿到的数字,我也不知道是哪个部门的。
我需要在user click out column时,filter去department和out status。
例如,我click 21,我拿到fm。
我想过找index, 但是找不到相关的资料。希望那位大大可以帮忙。
[ 本帖最后由 cyang 于 26-11-2006 03:06 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 26-11-2006 11:24 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 1-12-2006 10:28 PM
|
显示全部楼层
老师,这个网站要付费的。
如果我只是要一个而已,但是不是一样的column的data。
好像我click在179,我拿到的data是FM, 我click 21 也是拿到FM。
请问可以做到这个麽?
[ 本帖最后由 cyang 于 2-12-2006 03:53 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 2-12-2006 01:55 PM
|
显示全部楼层
原帖由 cyang 于 1-12-2006 10:28 PM 发表
老师,这个网站要付费的。
如果我只是要一个而已,但是不是一样的column的data。
好像我click在179,我拿到的data是FM, 我click 21 也是拿到FM。
请问可以做到这个麽?
看清楚... 这个网站不需要付费也能看.
要做到那样的话, 我通常用最简单的方法, 也就是自己写 code 产生出 datagrid.
然后在那 column 里放上我所需要的 link 和 parameters.
至于如何产生 datagrid 的 column, 看这里:
http://www.codeproject.com/useri ... emplate_columns.asp |
|
|
|
|
|
|
|
楼主 |
发表于 5-12-2006 08:07 AM
|
显示全部楼层
原帖由 goatstudio 于 2-12-2006 01:55 PM 发表
看清楚... 这个网站不需要付费也能看.
要做到那样的话, 我通常用最简单的方法, 也就是自己写 code 产生出 datagrid.
然后在那 column 里放上我所需要的 link 和 parameters.
至于如何产生 datagrid 的 column, 看这里:
http://www.codeproject.com/useri ... emplate_columns.asp
对不起,我真的找不到哪里可以看到solution。
我每次来这个网站,一按“view solution”,他就写“You Need to Subscribe to View This Solution ”, 我尝试不要填credit card来create account, 但是他不给。
可以教我怎样拿别个column的parameters麽? 我最大的难处就是这里。可是偏偏就是在网络找不到相关的资料(可能自己的keyword错), 或者可以教我keyword, 然后我自己再找。 我试过找很多keyword了,但是都找不到我要的资料。
Private Sub createtable()
Dim DepartColumn As New HyperLinkColumn
Dim InColumn As New HyperLinkColumn
Dim OutColumn As New HyperLinkColumn
'Dim InColumn As New BoundColumn
'Dim OutColumn As New BoundColumn
Dim TotalColumn As New BoundColumn
Dim inCol As New BoundColumn
Dim outCol As New BoundColumn
DepartColumn = New HyperLinkColumn
DepartColumn.DataTextField = "Department"
DepartColumn.DataTextFormatString = ""
DepartColumn.HeaderText = "Department"
DepartColumn.DataNavigateUrlField = "Department"
DepartColumn.DataNavigateUrlFormatString = "detail.aspx?departID={0}"
DepartColumn.NavigateUrl = "detail.aspx"
'DepartColumn.Target = "Depart"
'DepartColumn.SortExpression() = "department"
DataGrid1.Columns.Add(DepartColumn)
InColumn = New HyperLinkColumn
InColumn.DataTextField = "In"
InColumn.DataTextFormatString = ""
InColumn.HeaderText = "In"
InColumn.DataNavigateUrlField = "In"
InColumn.DataNavigateUrlFormatString = "detail.aspx?inID={0}"
InColumn.NavigateUrl = "detail.aspx"
''InColumn.SortExpression = "In"
''InColumn.Target = "In"
DataGrid1.Columns.Add(InColumn)
OutColumn = New HyperLinkColumn
OutColumn.DataTextField = "Out"
OutColumn.DataTextFormatString = ""
OutColumn.HeaderText = "Out"
OutColumn.DataNavigateUrlField = "Out"
OutColumn.DataNavigateUrlFormatString = "detail.aspx?outID={0}"
OutColumn.NavigateUrl = "detail.aspx"
OutColumn.Text = "test123"
''OutColumn.SortExpression = "Out"
''OutColumn.Target = "Out"
DataGrid1.Columns.Add(OutColumn)
TotalColumn = New BoundColumn
TotalColumn.DataField = "Total" ' Data Field Name(that is present in Query)
TotalColumn.DataFormatString = "" ' You May Specify the format of the Column
TotalColumn.HeaderText = "Total"
'TotalColumn.SortExpression = "Total"
DataGrid1.Columns.Add(TotalColumn) ' Adding the Column to Datagrid
inCol = New BoundColumn
inCol.DataField = "In" ' Data Field Name(that is present in Query)
inCol.DataFormatString = "" ' You May Specify the format of the Column
DataGrid1.Columns.Add(inCol)
inCol.Visible = False
outCol = New BoundColumn
outCol.DataField = "Out" ' Data Field Name(that is present in Query)
outCol.DataFormatString = "" ' You May Specify the format of the Column
DataGrid1.Columns.Add(outCol)
outCol.Visible = False
谢谢你的帮忙。 |
|
|
|
|
|
|
|
楼主 |
发表于 5-12-2006 08:18 AM
|
显示全部楼层
<TemplateColumn>
<ItemTemplate>
<asp:HyperLink Runat="server" NavigateUrl='<%# _
"Details.aspx?EmployeeID=" & Container.DataItem("ID") & _
"&EmployeeName=" & Container.DataItem("FirstName") %>' />
</ItemTemplate>
</TemplateColumn>
Instead of doing the string concatenation yourself you can use the BuildUrlWithQueryString function, which must be declared with Public/Protected visibility in the code-behind, as follows:
<TemplateColumn>
<ItemTemplate>
<asp:HyperLink Runat="server" NavigateUrl='<%# _
BuildUrlWithQueryString("Details.aspx", _
"EmployeeID", Container.DataItem("ID"),
"EmployeeName", Container.DataItem("FirstName")) %>' />
</ItemTemplate>
</TemplateColumn>
这个可以麽?我尝试用container。dataitem, 但是不成功。 |
|
|
|
|
|
|
|
发表于 5-12-2006 11:56 AM
|
显示全部楼层
借楼请问下。。template column 该怎样在runtime时 remove 掉? |
|
|
|
|
|
|
|
发表于 5-12-2006 01:32 PM
|
显示全部楼层
原帖由 tensaix2j 于 5-12-2006 11:56 AM 发表
借楼请问下。。template column 该怎样在runtime时 remove 掉?
你的runtime的意思是??? |
|
|
|
|
|
|
|
发表于 5-12-2006 02:04 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 5-12-2006 02:19 PM
|
显示全部楼层
你只是要把整个COLUMN隐藏的话,
在ITEMCREATED的时候用
dgUser.Columns[index].Remove(); |
|
|
|
|
|
|
|
发表于 5-12-2006 02:56 PM
|
显示全部楼层
是 DataGrid1.Columns.RemoveAt(0)
不是隐藏。。.因为我没那个column。所以连databind都不能。 |
|
|
|
|
|
|
|
发表于 5-12-2006 03:05 PM
|
显示全部楼层
原帖由 little_orc 于 5-12-2006 02:19 PM 发表
你只是要把整个COLUMN隐藏的话,
在ITEMCREATED的时候用
dgUser.Columns.Remove();
可以了。 谢谢 |
|
|
|
|
|
|
|
发表于 10-12-2006 01:49 AM
|
显示全部楼层
原帖由 cyang 于 5-12-2006 08:07 AM 发表
对不起,我真的找不到哪里可以看到solution。
我每次来这个网站,一按“view solution”,他就写“You Need to Subscribe to View This Solution ”, 我尝试不要填credit card来create account, 但是他不给。 ...
这是你 create datagarid 的方式, 你如何从资料库选择资料出来? 放在 DataView 还是 DataTable? 可以让我看看这段 code 你是怎么写的吗? |
|
|
|
|
|
|
|
发表于 10-12-2006 02:00 AM
|
显示全部楼层
如果我是你, 我会这样做 (C#):
先把你的 DataGrid, 全部设为 BoundColumn. 把 HyperLinkColumn 全部拿掉.
DataTable DataResult = new DataTable();
DataResult.Columns.Add (new DataColumn ("Department", typeof(string)));
DataResult.Columns.Add (new DataColumn ("OutStatus", typeof(int)));
...
...
DataResult.Columns.Add (new DataColumn ("Total", typeof(int)));
for (int x = 0; x < AnyDataSource.Count; x++) {
DataRow ObjRow = DataResult.NewRow();
ObjRow["Department"] = ResultHeaders[x].InternalID;
ObjRow["OutStatus"] = "<a href=somelink.aspx?id=" + AnyDataSource[x].col1 + "&id2=" + AnyDataSource[x].col2 + "' >" + AnyDataSource[x].col3 + "</a>";
...
...
DataResult.Rows.Add (ObjRow);
}
DataGrid.DataSource = DataResult;
DataGrid.DataBind();
用以上的方法... 你的 datagrid 的 link 要多少个 parameters 都可以. |
|
|
|
|
|
|
|
楼主 |
发表于 19-12-2006 07:47 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 19-12-2006 07:54 AM
|
显示全部楼层
原帖由 goatstudio 于 10-12-2006 02:00 AM 发表
如果我是你, 我会这样做 (C#):
先把你的 DataGrid, 全部设为 BoundColumn. 把 HyperLinkColumn 全部拿掉.
DataTable DataResult = new DataTable();
DataResult.Columns.Add (new DataColumn ("Depar ...
请问ResultHeaders是一个method么? 可以看看他的coding么?
我上网找不到相关的资料。
谢谢 |
|
|
|
|
|
|
|
发表于 21-12-2006 09:42 AM
|
显示全部楼层
原帖由 cyang 于 19-12-2006 07:54 AM 发表
请问ResultHeaders是一个method么? 可以看看他的coding么?
我上网找不到相关的资料。
谢谢
忘了说明, ResultHeaders 是我自己的 class, 一个 collection class, 里面是储存选择出来的资料. 这里你可以用 DataTable 来代替. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|