将2个值从Itemtemplates传递到代码隐藏

时间:2011-07-19 15:06:12

标签: asp.net gridview

这段代码有什么问题,我收到了这个错误:

Compiler Error Message: CS1502: The best overloaded method match for 'RenderName(string, string)' has some invalid arguments

<ItemTemplate>

<asp:Label ID="lblName" Text='<%# RenderName(Eval("Name"), Eval("Value")) %>'  runat="server" />

</ItemTemplate>

public string RenderName(string name, string value)
{
  //do stuffs..
}

2 个答案:

答案 0 :(得分:1)

如果Eval()的返回类型是一个对象(我怀疑它是),那将解释你所看到的错误。也许将你的功能改为:

RenderName(object nameString, object valueString)

然后在函数中,检查传递的params是否为null,并将它们重新转换为字符串,或者只是在它们上调用ToString()。

注意:我不在我可以在自己的开发环境中验证这一点的地方,所以如果这种方法有一些小问题,请道歉。

答案 1 :(得分:0)

我收到错误的原因是因为我没有转换类型

<ItemTemplate>
<asp:Label ID="lblName" Text='<%# RenderName(Eval("Name").ToString(), Eval("Value").ToString()) %>'  runat="server" />
</ItemTemplate>

按预期工作。