风雪文章系统.Net开发记录1
<asp:DropDownList ID="ClassList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ClassList_SelectedIndexChanged"></asp:DropDownList>
<asp:DataList ID="DataList1" runat="server" BorderColor="#CCCCFF" BorderWidth="1px"
HorizontalAlign="Center" RepeatDirection="Horizontal" ShowFooter="False" ShowHeader="False" Width="75%">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("classname") %>' NavigateUrl='<%# "?id=" + Eval("classid") %>'></asp:HyperLink>
</ItemTemplate>
</asp:DataList>
<asp:DataList ID="DataList1" runat="server" BorderColor="#CCCCFF" BorderWidth="1px"
HorizontalAlign="Center" RepeatDirection="Horizontal" ShowFooter="False" ShowHeader="False" Width="75%">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("classname") %>' NavigateUrl='<%# "?id=" + Eval("classid") %>'></asp:HyperLink>
</ItemTemplate>
</asp:DataList>
遇到的问题总结如下:
1.问题:DropDownList 绑定 DataSet 后,显示System.Data.DataRowView
解决:DropDownList.DataSource = ds; //数据源
DropDownList.DataMember = "table"; //表名
DropDownList.DataTextField = "name"; // 显示的字段
DropDownList.DataValueField = "id"; // 值的字段
2.问题:HyperLink的链接问题,开始使用NavigateUrl='<%#Eval("classid") %>' 能够得到正确的结果,但是我要输出show.aspx?id=1的效果,尝试NavigateUrl='show.aspx?id=<%#Eval("classid") %>' 直接输出<a href="show.aspx?id=<%Eval("classid")%>",郁闷,但是我在群里询问有朋友说他这样可以的。
解决:NavigateUrl='<%# "?id=" + Eval("classid") %>'
而且最外面一定要用单引号。
3.问题:在后置代码中声明全局变量中不能使用Server,在过程中可以使用Server
解决:使用绝对类路径,我杜撰的名词,不知道准确的应该怎么说。
System.Web.HttpContext.Current.Server
4.问题:关于GridView,在GV中,不能自动翻页、排序等
解决:如果你不是使用数据源控件,则不会自动实现上述过程,必须手动。
protected void NewsGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
NewsGrid.PageIndex = e.NewPageIndex; //设置为下一页
ChangeClass(); //必须重新绑定数据
}
5.问题:已经把conn声明为public,但还是不能使用,提示ConnectionString 属性尚未初始化。
解决:使用之间先判断一下。
if (conn.State == ConnectionState.Closed)
{
conn.ConnectionString = connStr;
conn.Open();
}