一个简单的gridview+formview查询器,遇到的问题(未完成)
Tips#1:
排序的时候遇到:不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型。
解决办法:转换成Varchar
SELECT DISTINCT CAST(COLNAME AS VARCHAR) FROM TABLENAME
TipS#2:
update一张表的时候跨两张表,可以这样:
update tb1 set id = (select id from tb2 where......)
where .....
Tips#3:
Gridview里头数据过多而用户不想老点翻页的情况,用户希望一页显示100条数据,所以用上了panel,然后自动伸缩
Tips#4:
gridview选择行的情况,网上找到一段:
e.Row.Attributes.Add("onclick", "__doPostBack('ctl00$MainContent$GridViewRCList','Select$" + e.Row.RowIndex + "')");
缺点:doPostBack!!!导致每次点击靠后的数据时候,点完,然后自动刷新到第一行(虽然选中了靠后数据的那行),虽然用了ajax,doPostBack看起来没那么刺眼,但是用户体验不好。。。
解决办法:在postback的事件之前,用Javacript读取panel,找到panel的属性.scrollTop的值,写入document.cookie,postback之后在page_load事件里头再一次的调用javascript,读取document.cookie,获得scrollTop,然后设置panel的scrollTop。
Tips#5:
Gridview标题不换行
gvStateList.Attributes.Add("style", "word-break:keep-all;word-wrap:normal;white-space:nowrap");
数据不换行
protected void gvStateList_RowCreated(object sender, GridViewRowEventArgs e)
{
//设置gridvie不换行;
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Wrap = false;
e.Row.Cells[i].Attributes.Add("style", "word-break :keep-all ; word-wrap:keep-all");
}
}