DropDownList在GridView的模块编辑中

zhongJin378488 2010-11-18 02:03:06
GridView中的模块编辑的一个分类显示
ItemTemplate中放了一个DropDownList
还有一个HiddenField
现在出现的问题是 在GridView中能更新修改
但是最开始显示的是DropDownList中的第一个值
而不是根据 主外键获得的 那个值
有一个主外键关系
分类的 日记
还有日记分类
这2个表的关系
想页面加载的时候 DropDownList的值 是已经通过主外键关系的值了
代码如下
public partial class Diary : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.DataTextField = "SortName";
DropDownList1.DataValueField = "DiarySortID";
DropDownList1.DataSource = N03.BLL.DiarySortManager.GetAll();
DropDownList1.DataBind();
Bind();
}
}

private void Bind()
{
GridView1.DataSource = N03.BLL.DiaryManager.GetAll();
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
if (!Validate1.CheckSN(txtyzm.Text))
{
Response.Write("验证码错误!");
return;
}
N03.Models.Diary sort = new N03.Models.Diary();
N03.Models.DiarySort diarysort = new N03.Models.DiarySort();
sort.Title = txttitle.Text;
sort.Pubtime = DateTime.Now;
sort.Content = txtContent.Text;
diarysort.DiarySortID =Convert.ToInt32(DropDownList1.SelectedValue);
sort.DiarySort_DiarySortID =diarysort;
bool bol = N03.BLL.DiaryManager.Add(sort) > 0 ? true : false;
if (bol)
{
Response.Write("<script>alert('添加成功!')</script>");
Bind();
}
else
{
Response.Write("<script>alert('添加失败')</script>");
}

}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int id = Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].FindControl("Label2")).Text);
bool bol = N03.BLL.DiaryManager.Delete(id) > 0 ? true : false;
if (bol)
{
Response.Write("<script>alert('删除成功!');window.location.href('Diary.aspx')</script>");
Bind();
}
else
{
Response.Write("<script>alert('删除失败')</script>");
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || (DropDownList)e.Row.FindControl("ddlSort")!=null)
{
//删除确认
DropDownList ddlSort = (DropDownList)e.Row.FindControl("ddlSort");
LinkButton lb = (LinkButton)e.Row.FindControl("LinkButton2");
lb.Attributes.Add("onclick", "return confirm('确定删除?')");
N03.Models.Diary diary = new N03.Models.Diary();
N03.Models.DiarySort diarysort = new N03.Models.DiarySort();
//估计代码问题就在这一段 空着没写 没有思路
//加载隐藏控件DropList2 分类显示
ddlSort.DataTextField = "SortName";
ddlSort.DataValueField = "DiarySortID";
ddlSort.DataSource = N03.BLL.DiarySortManager.GetAll();
ddlSort.DataBind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
N03.Models.Diary diary = new N03.Models.Diary();
diary.DiaryID = Convert.ToInt32(((Label)GridView1.Rows[e.RowIndex].FindControl("Label2")).Text);
diary.Title = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox3")).Text;
diary.Content = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox4")).Text;
diary.Pubtime = Convert.ToDateTime(((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox5")).Text);
N03.Models.DiarySort diarysort = new N03.Models.DiarySort();
diarysort.DiarySortID = Convert.ToInt32(((DropDownList)GridView1.Rows[e.RowIndex].FindControl("ddlSort")).SelectedValue);
diary.DiarySort_DiarySortID = diarysort;
bool bol = N03.BLL.DiaryManager.Modify(diary) > 0 ? true : false;
if (bol)
{
Response.Write("<script>alert('修改成功!');window.location.href('Diary.aspx')</script>");
Bind();
}
else
{
Response.Write("<script>alert('修改失败')</script>");
}
}
}
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2010-11-18
  • 打赏
  • 举报
回复
GridView1_RowDataBound事件中 给ddlSort设置selectedValue即可
liuwei2500 2010-11-18
  • 打赏
  • 举报
回复
DropDownList1.DataTextField = "SortName";
DropDownList1.DataValueField = "DiarySortID";
DropDownList1.DataSource = N03.BLL.DiarySortManager.GetAll();
DropDownList1.DataBind();
Bind();

紧接着应该要设定DropDownList1.selectedItem();
否则默认永远都是第一行

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧