我把仅有的分数都贡上了,求个数据绑定的问题(13分)

  • 主题发起人 主题发起人 自由使者
  • 开始时间 开始时间

自由使者

Unregistered / Unconfirmed
GUEST, unregistred user!
我在<ItemTemplate>里面加了个DropDownList,这个List我想绑定到数据库的一张参数表里去,我用VS。NET写,不知道怎么绑定。一般的如果页面上放一个DropDownList的话可以在.cs里写DropDownList.datasource=......;DropDownlist.TextField=.......;DropDownList.DataBind();
但放在<ItemTemplate>里后,.CS里就不认识这个DropDownList了,上面的方法就不行了,不知道哪位大虾知道怎么做
 
<%@ Import namespace="System.Data" %>
<html>
<head>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack then

Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer
'创建数据表
dt = New DataTable
dt.Columns.Add(New DataColumn("整数值", GetType(Integer)))
dt.Columns.Add(New DataColumn("字符串值", GetType(String)))
dt.Columns.Add(New DataColumn("日期时间值", GetType(DateTime)))
dt.Columns.Add(New DataColumn("布尔值", GetType(Boolean)))
'生成一些行,并在其中放置一些示例数据
For i = 1 To 9
dr = dt.NewRow()
dr(0) = i
dr(1) = "项 " + i.ToString()
dr(2) = DateTime.Now.ToShortTimeString
If (i Mod 2 <> 0) then
dr(3) = True
else
dr(3) = False
End If
'向数据表添加行
dt.Rows.Add(dr)
Next
dataGrid1.DataSource = new DataView(dt)
dataGrid1.DataBind
End If
End Sub
</script>
</head>
<body>
<h3><font face="宋体">到 DataView 的数据绑定</font></h3>
<form runat=server>
<asp:DataGrid id="dataGrid1" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
HeaderStyle-BackColor="#aaaadd"
/>
</form>
</body>
</html>
 
你把控件放在<ItemTemplate>中,要知道<ItemTemplate>是怎么回事
每个Item都是动态产生的,放在其中的控件也一样
所以直接引用控件的名称是不行的
你可以在ItemCreate 或者 ItemDataBound的时候将数据绑定到你的控件。
-------------------
MSN:Delphi_lha@163.com

 
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string BindCmd="select specialty from parameter where specialty is not null";
OracleCommand bindcommand=new OracleCommand(BindCmd,oracleConnection1);
try
{
bindcommand.Connection.Open();
OracleDataReader bindreader=bindcommand.ExecuteReader();
((DropDownList)e.Item.FindControl("edit_specialty")).DataSource=bindreader;
((DropDownList)e.Item.FindControl("edit_specialty")).DataTextField="specialty";
((DropDownList)e.Item.FindControl("edit_specialty")).DataBind();
}
catch(OracleException exc)
{
error_box.Text=exc.Message;
}
finally
{
bindcommand.Connection.Close();
bindcommand.Dispose();
}
}
我试了下,报错未将对象引用实例化
 
Sub DataGrid1_ItemDataBound(sender As Object, e As DataGridItemEventArgs)

Dim dpl As DropDownlist = CType(e.Item.FindControl("DropDownList1"), DropDownlist)
If not (dpl is nothing) then
dpl.Items.Add("Just easy")
dpl.Items.Add("Can you see this?")
End If
End Sub
并不是每个e.Item里面都有这个DropDownList 比如标题栏就没有
所以要判断一下
BTW:你的分数实在太少了
 
问题已解决,放在DATAGRID_EDITCOMMAND里就可以了
 
后退
顶部