我使用将返回动态列的pivot(动态查询)存储了proc。喜欢
ItemId A B c
------ -- -- --
1 A_Value1 B_Value1 C_Value1
16 A_Value2 B_Value2 C_Value2
这里A,B,C是动态列。有时A只发生A或B,C,D,E等,因为它的数据透视表
然后,
我将结果绑定在gridview中。
我的要求是,我想用结果按钮绑定结果gridview的模板字段。因为我想为每列做rowcommand事件
对于C列
CommandArgument = ColumnName+","+ItemID_Value;
即CommandArgument = "A,16";
这该怎么做 。请帮助。
答案 0 :(得分:0)
您已经回答:)
<asp:TemplateField HeaderText="A">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lnkModify" Text="Edit" CommandName="MyCommand">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
和OnRowDataBound
(或直接在aspx中)
MyClass item = e.Row.DataItem as MyClass;
LinkButton lnk = (LinkButton)e.Row.FindControl("lnkModify");
lnk.CommandArgument = "A," + item.Id;
编辑:对不起,我现在读到他们是dinamic专栏。
两种解决方案:
首先,您需要始终拥有所有列。然后你可以编写如上所述的代码但是你有动态HeaderText
和CommandArgument
可以读取HeaderText(或相对列的索引)。如果列不存在,您可以在Visible
上使用LinkButton
。
如果您不知道列号,则可以构建数据结构并使用AutoGenerateColumns="true"
来绑定数据。
如果您不需要分页,可以使用嵌套的Repeater(一个用于ABCDE列,一个用于行)。
希望它有所帮助。