委托delegate怎么来处理{0}参数?
public static BoundField AddNewBoundField(string DataField, string HeaderText, string DataFormatString, UserFormatString func){
BoundField bc = new BoundField();
bc.DataField = DataField;
bc.HeaderText = HeaderText;
if (DataFormatString != null)
{
DataFormatString = DataFormatString.Trim();
bc.DataFormatString = DataFormatString;
}
if (func != null)
{
bc.DataFormatString = func(DataFormatString);
}
return bc;
}
其中UserFormatString是定义的一个委托,我现在想让func来处理DataFormatString接受来的参数,DataFormatString的值为"{0}",用于接受DataField字段的值,现在func处理的参数一直是"{0}",而不是DataField的值,咋整啊,我想func处理的参数是DataField字段的值,不知小弟是不是把问题说明白了,望各位大虾出手想助. --------------------编程问答-------------------- 看下是否字段传值对了..DataFormatString的来源是否是你传递的数据源内容.. --------------------编程问答-------------------- up --------------------编程问答-------------------- 值是传对了,我的func委托的函数都有一个返回参数变量length属性,结果都是3,而不是绑定字段数据源的内容的字符串长度,无奈.我想都是3,不可能这么这么巧合,估计处理这个参数变量就是"{0}",因为它的长度正好是3,各位大虾可得伸把手吧,不能见死不救啊?!?!?!?! --------------------编程问答-------------------- 代码贴全些
委托怎么写的
--------------------编程问答-------------------- 顺便说一下,我给DataFormatString的参数为"{0}",不知道这样是否正确,
AddNewBoundField("Sex", "性别", "{0}", CheckSex)
其中,Sex为数据绑定字段,其值为0,1,2,CheckSex是一个委托,用以处理Sex字段的值,比如说,当Check到Sex的值为0就返回"男",1为"女",2为"保密",不知道我上面写的函数能否实现,路过的大虾,如果时间宽裕的话,帮忙给看一下,不胜感激. --------------------编程问答-------------------- 之前怎么调用AddNewBoundField这个方法的,都贴下看看 --------------------编程问答-------------------- string DataFormatString这是方法的参数,你传{0},那么DataFormatstring 当然为{0}. --------------------编程问答-------------------- 函数调用,AddNewBoundField("PassengerType", "乘客类别", "{0}", tempCheckPassengerType)
其中,
UserFormatString tempCheckPassengerType = new UserFormatString(CheckPassengerType);
其中,
public static string CheckPassengerType(string s)
{
s = s.Trim();
switch (s)
{
case "0": s = "易做图"; break;
case "1": s = "儿童"; break;
case "2": s = "婴儿"; break;
default: s = s + "长度:" + s.Length.ToString(); break;
}
return s;
}
问题在于,我每次函数调用的时候,都是返回的是default条件,而且s的值都是3,无奈了.您看一下,代码都贴全了吗? --------------------编程问答-------------------- public static string CheckPassengerType(string s)
{
s = s.Trim();
switch (s)
{
case "0": s = "易做图"; break;
case "1": s = "儿童"; break;
case "2": s = "婴儿"; break;
default: s = s + "长度:" + s.Length.ToString(); break;
}
return s;
}
=====================
string s 是"{0}" 么??
--------------------编程问答-------------------- 你可以在方法调用之前就获取DataField字段的值,然后把值作为方法的DataFormatString参数.或者在方法内再获取DataField的值,再赋值给DataFormatString --------------------编程问答-------------------- 问题是你没有获取到DataField的值. --------------------编程问答-------------------- 其实,我试了一下,不写成函数,分开来写就没有问题,举例来说就是
BoundField bc=new BoundField();
bc.DataField="PassengerType";
bc.HeaderText="乘客类别";
bc.DataFormatString= CheckPassengerType({0});
就没有问题,可以正常显示,但是写成我那样的函数就有问题,是不是我的函数写的有问题,再次感谢大家回复我的贴子,我还想问一下,怎么把分数给你们啊. --------------------编程问答-------------------- To:hdt(倦怠)
string s 是"{0}" . --------------------编程问答-------------------- 顺便我想问一句,大家关于这里是怎么处理的啊,比如说,检测到某一个值,然后返回相应的字符串,就像我上面那个乘客类别这样. --------------------编程问答-------------------- 你把{0}加个"",就变成字符串了.呵呵.点管理就行了 --------------------编程问答-------------------- 我如果只是显示就直接在select语句里做掉了.select case --------------------编程问答-------------------- To:whslovexyp
3KS
补充:.NET技术 , C#