积极答复者
C#前台数据绑定,类型转换

问题
-
我的前台绑定这样的
Text='<%# "¥"+DataBinder.Eval(Container,"DataItem.(decimal.Parse(p_kt_price))",{0:f}) %>'
其中p_kt_price是char类型的,所以我要把它变成decimal型的,然后保留两位小数,但是做不到,请教大家 !
下面的这个,我也试过了,也不行
Text='<%# "¥"+DataBinder.Eval(Container.DataItem,"decimal.Parse(p_kt_price)","{0:f}") %>'
谢谢大家了
还有就是(这个问题与上面的不相联系),我这样绑定一个数据Text='<%# Eval("bl_name") %>',它显示的结果为862dd3255@qq.com,我怎么让它显示成中间加星号的,如:86***@qq.com ?
ps:对于第二个问题:如果原来的是 “3i5k32我的541fdf3332” 这样的字符串,怎么让它只显示成保留前两个字符,即:3i****- 已编辑 NewJoin 2009年9月20日 9:48
- 已移动 孟宪会Moderator 2009年9月21日 3:38 (发件人:Web 相关讨论(IIS,IE8等))
答案
-
你好 对于第一个问题 既然是int型为什么还要保留小数点呢
Text='<%# "¥"+Convert.ToInt32(DataBinder.Eval(Container.DataItem,"p_kt_price")).ToString("F2")%>'
对于第二个问题
Text='<%# System.Text.RegularExpressions.Regex.Replace(Eval("bl_name").ToString(),@"(?<=[\w]{2})(.+)(?=@)","***") %>'
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已建议为答案 Raymond TangModerator 2009年9月21日 9:12
- 已标记为答案 肖小勇Moderator 2009年9月21日 9:24
-
您好,可以使用.ToString("0.00"); 但我想小数后两位将永远是.00,因为源类型是char。
- 已标记为答案 肖小勇Moderator 2009年9月22日 1:05
-
public static string strStar(string str)
Text='<%# Eval("p_kt_price", "¥ {0:N2}") %>'
数字 {0:N2} 12.36
数字 {0:N0} 13
货币 {0:c2} ¥12.36
货币 {0:c4} ¥12.3656
货币 "¥{0:N2}" ¥12.36
{
string Start = string.Empty;
int count = 0;
count = str.IndexOf("@") - 2;
string st1 = str.Substring(str.IndexOf("@") + 1);
for (int i = 0; i < count; i++)
{
Start += "*"; //获取截取数字个数用"*"号代替
}
str = str.Substring(0, 2) + Start + st1;
return str;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(strStar("862dd3255@qq.com"));
Response.Write(strStar("100000@qq.com"));
}
输出: 86*******qq.com
10****qq.com- 已标记为答案 肖小勇Moderator 2009年9月22日 1:03
-
你好,你可以在 SQL 语句处理------------------------------
DECLARE @T TABLE (col1 VARCHAR(10), col2 NVARCHAR(20)) INSERT INTO @T VALUES ('5', '862dd3255@qq.com') INSERT INTO @T VALUES ('5.1', 'JJ2862dd3255@qq.com') SELECT col1 = CAST(col1 AS DECIMAL(18,2)), col2 = SUBSTRING(col2, 1, 2) + '*****' + SUBSTRING(col2, CHARINDEX('@', col2), 100) FROM @T --结果 --5.00 86*****@qq.com --5.10 JJ*****@qq.com
知识改变命运,奋斗成就人生!- 已标记为答案 肖小勇Moderator 2009年9月22日 1:05
-
谢谢您了,这个问题已经用正则表达式解决了
Text='<%# System.Text.RegularExpressions.Regex.Replace(Eval("bl_name").ToString(),@"(?<=[\w]{2})(.+)(?=@)","***") %>'- 已标记为答案 KeFang Chen 2009年9月21日 8:08
全部回复
-
你好 对于第一个问题 既然是int型为什么还要保留小数点呢
Text='<%# "¥"+Convert.ToInt32(DataBinder.Eval(Container.DataItem,"p_kt_price")).ToString("F2")%>'
对于第二个问题
Text='<%# System.Text.RegularExpressions.Regex.Replace(Eval("bl_name").ToString(),@"(?<=[\w]{2})(.+)(?=@)","***") %>'
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已建议为答案 Raymond TangModerator 2009年9月21日 9:12
- 已标记为答案 肖小勇Moderator 2009年9月21日 9:24
-
您好,可以使用.ToString("0.00"); 但我想小数后两位将永远是.00,因为源类型是char。
- 已标记为答案 肖小勇Moderator 2009年9月22日 1:05
-
太感谢您了,第一个问题是我说错了,是要转换成Decimal或浮点类型的,总之就是带有小数点的,然后最后保留两位小数来显示
第一个问题按照那种方式也会显示后边两位小数点的 比如25 显示为25.00
如jiyuan所述因为是char 所以后两位永远是.00
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond -
public static string strStar(string str)
Text='<%# Eval("p_kt_price", "¥ {0:N2}") %>'
数字 {0:N2} 12.36
数字 {0:N0} 13
货币 {0:c2} ¥12.36
货币 {0:c4} ¥12.3656
货币 "¥{0:N2}" ¥12.36
{
string Start = string.Empty;
int count = 0;
count = str.IndexOf("@") - 2;
string st1 = str.Substring(str.IndexOf("@") + 1);
for (int i = 0; i < count; i++)
{
Start += "*"; //获取截取数字个数用"*"号代替
}
str = str.Substring(0, 2) + Start + st1;
return str;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(strStar("862dd3255@qq.com"));
Response.Write(strStar("100000@qq.com"));
}
输出: 86*******qq.com
10****qq.com- 已标记为答案 肖小勇Moderator 2009年9月22日 1:03
-
你好,你可以在 SQL 语句处理------------------------------
DECLARE @T TABLE (col1 VARCHAR(10), col2 NVARCHAR(20)) INSERT INTO @T VALUES ('5', '862dd3255@qq.com') INSERT INTO @T VALUES ('5.1', 'JJ2862dd3255@qq.com') SELECT col1 = CAST(col1 AS DECIMAL(18,2)), col2 = SUBSTRING(col2, 1, 2) + '*****' + SUBSTRING(col2, CHARINDEX('@', col2), 100) FROM @T --结果 --5.00 86*****@qq.com --5.10 JJ*****@qq.com
知识改变命运,奋斗成就人生!- 已标记为答案 肖小勇Moderator 2009年9月22日 1:05
-
谢谢您了,这个问题已经用正则表达式解决了
Text='<%# System.Text.RegularExpressions.Regex.Replace(Eval("bl_name").ToString(),@"(?<=[\w]{2})(.+)(?=@)","***") %>'- 已标记为答案 KeFang Chen 2009年9月21日 8:08
-
偶滴正则啊~~~~
#_-!
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond