我在dataGrid中加入摸板列DropDownList,是加在<ItemTemplate></ItemTemplate>之间的.我在使用时选择其中的下拉的值是可以的,但保存时,从detaGrid中读出它的当前值总是得不到想要的当前值,不知道为什么,用TextBox却有可以.
代码如下;
drp1=(DropDownList)DataGrid1.Items[i].Cells[5].Controls[1];//获得DropDownList当前的值
代码如下;
drp1=(DropDownList)DataGrid1.Items[i].Cells[5].Controls[1];//获得DropDownList当前的值
if (!IsPostBack)
{
//里面
}
<ItemTemplate>
<asp:DropDownList id="dd" runat="server">
<asp:ListItem selected="True" value="1">ddddd</asp:ListItem>
<asp:ListItem value="2">sdsdf</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
codebehind代码:
DropDownList dd = (DropDownList)DataGrid1.FindControl("dd");
Response.Write(dd.SelectedItem.Value);
----------------------------------
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (DataGrid1.EditItemIndex!=-1)
{
if (e.Item.ItemIndex==DataGrid1.EditItemIndex)
{
DropDownList ddl=new DropDownList();
ddl.Items.Add("等待确认");
ddl.Items.Add("已经发货");
ddl.Items.Add("交易完毕");
ddl.Items.Add("问题订单");
ddl.Width=90;
ddl.SelectedValue=((TextBox)(e.Item.Cells[3].Controls[0])).Text;
e.Item.Cells[3].Controls.Add(ddl);
}
}
}
将绑定代码放在!isPageBack中
你读取DataGrid的值应该是在UpdateCommand这个事件中读取值
<asp:TemplateColumn SortExpression="数据库类型" HeaderText="数据库类型">
<ItemTemplate>
<asp:Label id=Label2 Runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"数据库类型")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate><asp:DropDownList id=edit_State Runat="server" SelectedIndex='<%# GetStateIndex(DataBinder.Eval(Container.DataItem,"11").ToString()) %>'><asp:ListItem Value="sqlserver">sqlserver</asp:ListItem>
<asp:ListItem Value="oracle">oracle</asp:ListItem> </asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
在.aspx中
public int GetStateIndex(String stateName)
{
if (StateIndex[stateName] != null)
return (int)StateIndex[stateName];
else
return 0;
}((DropDownList)e.Item.FindControl("edit_State")).SelectedItem.ToString();//保存数据内容
StateIndex = new Hashtable();
StateIndex["sqlserver"] = 0;
StateIndex["oracle"] = 1;
看看的page_load中有没有漏洞