孟子的方法:http://dotnet.aspx.cc/ShowDetail.aspx?id=F43AF9A5-2C2E-4AA6-E976-21E9569F5A8A
<asp:TemplateColumn HeaderText="付款方式">
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.PaymentTerms") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList id="DropDownList3" runat="server"></asp:DropDownList>
</FooterTemplate>
</asp:TemplateColumn> Private Sub datagrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBoundEditItemTemplate里面有个DropDownList1,绑定数据是: If e.Item.ItemType = ListItemType.EditItem Then
'##############绑定DropDownList编辑时默认值是数据库字段中原先的值####### Dim DRV1 As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim CurrentTerms As String = DRV1("PaymentTerms") '################################################# Dim DDL As DropDownList = CType(e.Item.Cells(9).Controls(1), DropDownList)
Dim GetPaymentTerms As New modern
Dim item1 As ListItem DDL.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL.DataValueField = "PaymentTerms"
DDL.DataBind()
item1 = DDL.Items.FindByValue(CurrentTerms)
If Not item1 Is Nothing Then item1.Selected = True
Dim DDL3 As DropDownList = CType(e.Item.Cells(9).Controls(2), DropDownList)
DDL3.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL3.DataValueField = "PaymentTerms"
DDL3.DataBind()
End If
End Sub
DropDownList1的绑定数据没有问题(datasource是来自数据库一个数据表)
但是DropDownList3我用同样的方法绑定,但是却找不到控件(datasource是跟DropDownList1一样)
FooterTemplatee里面的DropDownList3后台要怎么找到他?最后我要实现的效果是快速添加新行: http://tinypic.com/6f10uq.gif
<asp:TemplateColumn HeaderText="付款方式">
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.PaymentTerms") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList id="DropDownList3" runat="server"></asp:DropDownList>
</FooterTemplate>
</asp:TemplateColumn> Private Sub datagrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBoundEditItemTemplate里面有个DropDownList1,绑定数据是: If e.Item.ItemType = ListItemType.EditItem Then
'##############绑定DropDownList编辑时默认值是数据库字段中原先的值####### Dim DRV1 As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim CurrentTerms As String = DRV1("PaymentTerms") '################################################# Dim DDL As DropDownList = CType(e.Item.Cells(9).Controls(1), DropDownList)
Dim GetPaymentTerms As New modern
Dim item1 As ListItem DDL.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL.DataValueField = "PaymentTerms"
DDL.DataBind()
item1 = DDL.Items.FindByValue(CurrentTerms)
If Not item1 Is Nothing Then item1.Selected = True
Dim DDL3 As DropDownList = CType(e.Item.Cells(9).Controls(2), DropDownList)
DDL3.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL3.DataValueField = "PaymentTerms"
DDL3.DataBind()
End If
End Sub
DropDownList1的绑定数据没有问题(datasource是来自数据库一个数据表)
但是DropDownList3我用同样的方法绑定,但是却找不到控件(datasource是跟DropDownList1一样)
FooterTemplatee里面的DropDownList3后台要怎么找到他?最后我要实现的效果是快速添加新行: http://tinypic.com/6f10uq.gif
改成
Dim DGCount As Integer = DataGrid1.Controls(0).Controls.Count
Dim DDL3 As DropDownList = Ctype(DataGrid1.Controls(0).Controls(DGCount-1).FindControl("DropDownList3"),DropDownList)
int mycount = this.DataGrid1.Controls[0].Controls.Count;
DropDownList mybox = (DropDownList)this.DataGrid1.Controls[0].Controls[mycount-1].FindControl("DropDownList3");
this.MyScript(mybox.SelectedValue);
If e.Item.ItemType = ListItemType.Footer Then
Dim DGCount As Integer = DataGrid1.Controls(0).Controls.Count
Dim DDL3 As DropDownList = CType(DataGrid1.Controls(0).Controls(DGCount - 1).FindControl("DropDownList3"), DropDownList)
DDL3.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL3.DataValueField = "PaymentTerms"
DDL3.DataBind()
End If
Dim DGCount As Integer = DataGrid1.Controls(0).Controls.Count
Dim DDL3 As DropDownList = CType(DataGrid1.Controls(0).Controls(DGCount - 2).FindControl("DropDownList3"), DropDownList)
DDL3.DataSource = GetPaymentTerms.GetPaymentTerms().Tables("PaymentTerms").DefaultView
DDL3.DataValueField = "PaymentTerms"
DDL3.DataBind()
End If
但是为什么孟子可以直接在Grid1_ItemCommand就找到footer里面的控件????????????这样简单????http://dotnet.aspx.cc/ShowDetail.aspx?id=C4CE487D-02FB-450B-BF3C-9F870CBC66A5