private void dgUser_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
Label lb = (Label)e.Item.FindControl("lbGroupName");
Object o = DataBinder.Eval(e.Item.DataItem,"EUG_Name");
lb.Text = o.ToString();
}
if(e.Item.ItemType==ListItemType.EditItem)
{
DropDownList dl = (DropDownList)e.Item.FindControl("ddlType");
dl.DataSource = member.GetGroupInfo(0);
dl.DataTextField = "EUG_Name";
dl.DataValueField = "EUG_ID";
dl.DataBind();
TextBox tb = (TextBox)e.Item.FindControl("tbGroupId");
dl.SelectedIndex = dl.Items.IndexOf(dl.Items.FindByValue(tb.Text)); 
}
}
private void dgUser_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgUser.EditItemIndex = e.Item.ItemIndex;
BindData();
}private void dgUser_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox UserName = (TextBox)e.Item.FindControl("tbUserName");
TextBox pwd = (TextBox)e.Item.FindControl("tbPassword");
DropDownList GroupId = (DropDownList)e.Item.FindControl("ddlType");
if (UserName.Text.Trim() == "")
{
ToolHelper.Alert("用户名不能为空",this);
return;
}
if (pwd.Text.Trim() == "")
{
ToolHelper.Alert("密码不能为空",this);
return;
}
string sGroupId = GroupId.SelectedValue;
int userid = int.Parse(dgUser.DataKeys[e.Item.ItemIndex].ToString());
member.UpdateUserInfo(UserName.Text.Trim(),pwd.Text.Trim(),int.Parse(sGroupId),userid);
dgUser.EditItemIndex = -1;
BindData();
}

解决方案 »

  1.   

    VB不想看﹗看在跪求兩字份上﹗
    再次提要加判斷﹕
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    }
      

  2.   

    大家好,我知道vb.net里是这样写的
    if e.Item.ItemType==ListItemType.Item and e.Item.ItemType==ListItemType.AlternatingItem但是我说的是如何取出dropdownlist的当前值啊
    比如:
      Dim tacode As TextBox = e.Item.Cells(2).Controls(0)
     Dim sacode As String = UCase(tacode.Text)
    这样就可以取出在编辑状态下的TEXTBOX的值,那么如何取出dropdownlist的当前值呢?是不是要所有做b/s的人都要学c#啊,vb.net也可以做了, 用vb.net开发的人都去那里了??
      

  3.   

    FindControl,语法不会写,你看看MSDN呀
      

  4.   

    C# 可以这样写
    cmd.Parameters.Add("@state",SqlDbType.VarChar).Value = ((DropDownList)(e.Item.FindControl("DropDownList1"))).SelectedItem.Text;VB.NET 不熟但更新的时候判断
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    {
    }
    是没有必要的因为现在是UpdateCommand事件
      

  5.   

    DropDownList GroupId = (DropDownList)e.Item.FindControl("ddlType");
    string sGroupId = GroupId.SelectedValue;