7月份开始的时候,对自己期望很高,希望可以非常认真的学习,实际证明,我对自己还是太好了,虽然学习了,但是效果还是不如意.
毕竟在公司已经待了3个月,对于平台比之前了解多了,但是也仅仅是了解多了,对于深入了解还差了很多.现在让解决Bug,也不会那么怵得慌.但是解决的速度还是很慢,平均一天只能解决一个Bug.调试的能力还是很弱,现在刚会一点看堆栈.
这一个月,我还是没有开始做新的指引,还是主要执着于解决Bug,以及各种杂事.对于我们自己负责的那块,稍微了解了些,但是出了问题,还是不能立马知道该如何解决.
这个月我主要解决问题有几个.
将数据显示为千元,就是以前是1000元这么显示,现在是1(千元)这么显示.但是问题在于同样的页面,编辑的时候是1000,只读的时候是1(千元).修改是在OnAfterDataBind()事件中修改的,在此为了能知道Control的ID会了一些IE的调试.以前也会,但是基本是用FireFox,所以没事也没怎么用IE调试.
还有就是手动起流程,这不是Bug,是培训的内容,组长觉得我们培训效果差是因为我们不实现,光听当然没什么收获,就让我们做手动起流程.但是不知道为什么,我们按KB上写的一步一步实现,但是却没有"发送",一直也不知道是为什么.只好试着将能用流程挂到我们的流程上,然后发现有"发送",一直一直在分析,也没分析出来.后来就将能用的流程上的属性一个一个去掉,终于发现是"自动发送待办"改为False就能有发送了,原因不知道,只知道效果.
还有就是写绩效规划的脚本,因为要更新很多数据.给了我一个Excel,我把里面的内容给整理成Sql语句.会了一点一次插入多条语句的插入,Insert-Select.还有就是一点Excel的技巧,=A1&B1,就是把两个单元格中的数据联合起来,如1,2变成12;还有就是类似的,因为sql语句的数据都需要用单引号,所以="'"&A1&"'"这种的,给加上单引号.
还有知道了平台上的SubmitButton,这种可以提示"正在****"的按钮,但是据说运行很慢.会了一点如何一次性提示所有Error,而不是一个一个的报,就是写成Error数组,然后输出数组的string.输入的数据控制不能为负数,开始的时候想在DataChange()中修改,后来发现不行,控制不住,所以还在确定按钮上进行了控制.
想想也就是这些了,不是很多,但好歹有收获,而且我还装了ReSharper,尽管让我的VS一个小时差不多死一次,但是我总算用它反编译出源码了.就是这段,我上次提到过的SelectedValue,为什么会在是PostBack的情况下报错,因为源码是这么写的.
<pre name="code" class="csharp"> /// <summary>
/// 获取列表控件中选定项的值,或选择列表控件中包含指定值的项。
/// </summary>
///
/// <returns>
/// 列表控件中选定项的值。默认值为空字符串 ("")。
/// </returns>
/// <exception cref="T:System.ArgumentOutOfRangeException">选定值是不在可用值列表中,视图状态或其他状态已加载(已执行回发)。有关更多信息,请参见“备注”部分。</exception>
[Bindable(true, BindingDirection.TwoWay)]
[WebCategory("Behavior")]
[Browsable(false)]
[DefaultValue("")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Themeable(false)]
[WebSysDescription("ListControl_SelectedValue")]
public virtual string SelectedValue
{
get
{
int selectedIndex = this.SelectedIndex;
if (selectedIndex >= 0)
return this.Items[selectedIndex].Value;
else
return string.Empty;
}
set
{
if (this.Items.Count != 0)
{
if (value == null || this.DesignMode && value.Length == 0)
{
this.ClearSelection();
return;
}
else
{
ListItem byValue = this.Items.FindByValue(value);
if (this.Page != null && this.Page.IsPostBack && this._stateLoaded && byValue == null)
throw new ArgumentOutOfRangeException("value", SR.GetString("ListControl_SelectionOutOfRange", (object) this.ID, (object) "SelectedValue"));
else if (byValue != null)
{
this.ClearSelection();
byValue.Selected = true;
}
}
}
this.cachedSelectedValue = value;
}
}
接着就是继续畅想下个月了,应该会比这个月好吧,至少博客应该一周一篇了.