DataList
来源:互联网 发布:卷皮淘宝客 模板 编辑:程序博客网 时间:2024/05/04 10:34
=======================代码实现增删改
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.Bind();
}
}
private void Bind()
{
this.DataList1.DataSource= DbHelperSQL.Query("select * from info").Tables[0];
this.DataList1.DataBind();
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = e.Item.ItemIndex;
this.Bind();
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = -1;
this.Bind();
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string ID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//主键
string address = ((TextBox)this.DataList1.Items[e.Item.ItemIndex].FindControl("TextBox1")).Text;
string sql = "delete from info where ID=" + ID;
int row = DbHelperSQL.ExecuteSql(sql);
if (row > 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('ok')</script>");
}
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string ID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//主键
string address = ((TextBox)this.DataList1.Items[e.Item.ItemIndex].FindControl("TextBox1")).Text;
string sql = "update info set address='"+address+"' where ID="+ID;
int row= DbHelperSQL.ExecuteSql(sql);
if (row>0)
{
ClientScript.RegisterStartupScript(this.GetType(),"alert","<script>alert('ok')</script>");
}
}
===========================分页=
<asp:DataList></asp:DataList><br />
<asp:LinkButton ID="LinkButton3" runat="server" >首页</asp:LinkButton>
<asp:LinkButton ID="LinkButton5" runat="server" >上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButton6" runat="server" >下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButton7" runat="server" >尾页</asp:LinkButton>
</div>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
</form>
//.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
this.Bind(0);
}
public DataSet query()
{
string sql = "select * from messages";
DataSet ds=DbHelperSQL.Query(sql);
return ds;
}
public void Bind(int pageindex)
{
PagedDataSource P = new PagedDataSource();
P.DataSource = query().Tables[0].DefaultView;
P.AllowPaging = true;
P.PageSize = 4;
this.HiddenField2.Value = P.PageCount.ToString();//总页数
P.CurrentPageIndex = pageindex;
this.HiddenField1.Value = pageindex.ToString();//当前页
this.DataList2.DataSource = P;
//尾页
if (P.CurrentPageIndex == P.PageCount - 1)
{
this.LinkButton4.Enabled = false;
this.LinkButton3.Enabled = false;
this.LinkButton2.Enabled = true;
this.LinkButton1.Enabled = true;
}
//首页
if (P.CurrentPageIndex ==0)
{
this.LinkButton2.Enabled = false;
this.LinkButton1.Enabled = false;
this.LinkButton4.Enabled = true;
this.LinkButton3.Enabled = true;
}
//中间页数
if (P.CurrentPageIndex != 0 && P.CurrentPageIndex != P.PageCount - 1)
{
this.LinkButton2.Enabled = true;
this.LinkButton1.Enabled = true;
this.LinkButton4.Enabled = true;
this.LinkButton3.Enabled = true;
}
this.DataList2.DataBind();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
int pageindex = 0;
this.Bind(pageindex);
}
//上一页
protected void LinkButton2_Click(object sender, EventArgs e)
{
int pageindex = int.Parse(this.HiddenField1.Value) - 1;//当前页控件hidden值
this.Bind(pageindex);
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
int pageindex = int.Parse(this.HiddenField1.Value) +1;
this.Bind(pageindex);
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
int pageindex =int.Parse(this.HiddenField2.Value)-1;//当前页控件hidden的值,为最后一页时
this.Bind(pageindex);
}
===============================点击时链接事件
protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('a')</script>");
}
今天有人要做DataList的行删除操作,不知道如何获取当前行的ID,之前一直是用GridView来做...没有用过DataList做过类似的功能...现在把相关的代码做了下记录...以备日后之需...毕竟自己太健忘了..呵呵呵...
(1)DataList中添加按钮,并为其添加 CommandArgument属性与CommandName属性...
<asp:Button ID="Button1" runat="server" Text="Button" CommandArgument='<%# Eval("EID") %>' CommandName="del"/>
(2)DataList有个事件OnItemCommand事件,事件在单击DataList控件中的任一按钮时引发...这样在单击当前行的按钮时就会触发事件并获得当前行的ID,进行删除操作啦....
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "del")
{
string myid = e.CommandArgument.ToString();
}
}
====================================绑定数据
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Content") %>'></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("Author") %>'></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("PubTime") %>'></asp:TextBox>
<asp:LinkButton ID="LinkButton1" CommandName="Update" runat="server" >更新</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CommandName="Cancel" >取消</asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Content") %>'></asp:Label>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Author") %>'></asp:Label>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("PubTime") %>'></asp:Label><br />
<asp:LinkButton ID="LinkButton2" CommandName="Edit" runat="server" >编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" CommandName="Delete" >删除</asp:LinkButton>
</ItemTemplate>
取数据
protected void DataList2_UpdateCommand(object source, DataListCommandEventArgs e)
{
string id = this.DataList2.DataKeys[e.Item.ItemIndex].ToString();
string content = ((TextBox)this.DataList2.Items[e.Item.ItemIndex].FindControl("TextBox1")).Text;
string author = ((TextBox)this.DataList2.Items[e.Item.ItemIndex].FindControl("TextBox2")).Text;
string time = ((TextBox)this.DataList2.Items[e.Item.ItemIndex].FindControl("TextBox3")).Text;
string sql = " update messages set content='" + content + "',author='" + author + "' where id='" + id + "'";
conn = new SqlConnection(connstr);
conn.Open();
comm = new SqlCommand(sql, conn);
int count = comm.ExecuteNonQuery();
if (count > 0)
{
this.DataList2.EditItemIndex = -1;
this.Bind();
ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('ok')</script>");
}
else
{
//ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('wrong')</script>");
}
conn.Close();
}
========================错误提示=
datalist提示:index索引超出范围,htm中, DataKeyField="ID"没设置
- DATALIST
- datalist
- datalist
- DataList
- DataList
- datalist
- DataList
- datalist
- Datalist
- DataList
- datalist
- datalist
- DataList
- datalist
- datalist
- datalist
- DataList嵌套DataList
- DataList嵌套DataList
- SPEC文件模板
- Variable's Day Out #6: Innodb_buffer_pool_reads
- 周志华推荐的人工智能网站
- JS 继承
- FFmpeg功能和参数介绍
- DataList
- JXC存档
- 『无聊透顶』一篇很无聊的文章
- Altium Designer 里面的Re-annotate命令不起作用的现象解决。
- js动态添加div(一)
- 百度IT界的“黑社会老大”
- 百度让我下岗了
- js动态添加div(二)
- [转NN网]求求百度给网站一点生存的空间吧!