谁能帮我解释一段代码,说者有分
string cj;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState & DataControlRowState.Edit) != 0)
{
cj = ((TextBox)e.Row.FindControl( "tfen ")).Text.Trim();
cj = cj.Replace( ".00 ", " ");
if (e.Row.Cells[0].Text.IndexOf( "米 ") > -1)
{
((TextBox)e.Row.FindControl( "tfen ")).Text = cj.Trim().Substring(0, cj.Trim().Length - 4);
((TextBox)e.Row.FindControl( "tmiao ")).Text = cj.Trim().Substring(cj.Trim().Length - 4, 2);
((TextBox)e.Row.FindControl( "tw ")).Text = cj.Trim().Substring(cj.Trim().Length - 2, 2);
}
else
{
((Label)e.Row.FindControl( "lfen ")).Text = "米 ";
((TextBox)e.Row.FindControl( "tmiao ")).Visible = false;
((Label)e.Row.FindControl( "lmiao ")).Visible = false;
((TextBox)e.Row.FindControl( "tw ")).Visible = false;
}
}
else
{
cj = ((Label)e.Row.FindControl( "lcj ")).Text.Trim();
cj = cj.Replace( ".00 ", " ");
if (e.Row.Cells[0].Text.IndexOf( "米 ") > -1)
{
if (cj.Trim().Substring(0, cj.Trim().Length - 4) == " ")
{
((Label)e.Row.FindControl( "lcj ")).Text = cj.Trim().Substring(cj.Trim().Length - 4, 2) + "秒 "
+ cj.Trim().Substring(cj.Trim().Length - 2, 2);
}
else
{
((Label)e.Row.FindControl( "lcj ")).Text = cj.Trim().Substring(0, cj.Trim().Length - 4) + "分 " + cj.Trim().Substring(cj.Trim().Length - 4, 2) + "秒 "
+ cj.Trim().Substring(cj.Trim().Length - 2, 2);
}
}
else
{
((Label)e.Row.FindControl( "lcj ")).Text = cj.Trim() + "米 ";
}
}
其中有些不明白
[解决办法]
请把代码贴全,并说明哪里不明白
[解决办法]
代码很简单,关键不知道他是用来做什么,我觉得好象是用来换算单位的!
[解决办法]
其中有些不明白,哪里不明白
[解决办法]
这就算算竞赛成绩的代码,充斥了无数substring,一种编辑状态下如何显示,一种是其他状态的显示
[解决办法]
控制数据绑定控件里的Label和Textbox的视图状态,做一些字符翻转,时间截取之类的工作,哪里不明白呢?
[解决办法]
if (e.Row.RowType == DataControlRowType.DataRow)//如果是数据行
{
if ((e.Row.RowState & DataControlRowState.Edit) != 0)如果该行是正被编辑的行
{
if (e.Row.Cells[0].Text.IndexOf( "米 ") > -1)如果该行的索引为0的列的Text值里有“米”字
{
[解决办法]
((TextBox)e.Row.FindControl( "tfen ")).Text
在该行里找到id为tfen的Object并转换为TextBox,“.Text”当然就是获取或设置他的值了。
其他的字符处理就不需要说了吧
[解决办法]
应该是gridview在的OnRowDataBound的事件中,
if (e.Row.RowType == DataControlRowType.DataRow)
这行代码是为了判断,当前Row是数据绑定行
if ((e.Row.RowState & DataControlRowState.Edit) != 0)
这应该是判断行的编辑状态
cj = ((TextBox)e.Row.FindControl( "tfen ")).Text.Trim();
cj = cj.Replace( ".00 ", " ");
寻找该行中名为tfen的textbox并且把他的text附给cj,然后替换.00,估计是小数型号的放money的:)
以下就和上面差不多了,都是寻找控件的
[解决办法]
楼上解释得差不多了,建议楼主自己在纸上画一下流程就知道了,还有就是先了解什么是OnRowDataBound事件,简单的说就是生成GridView的每一行时进行的数据绑定