在gridview中单击第二行时出现下拉列表错误.(帮助)第一行正常 [英] drop down list error when click at 2nd row.in gridview .(help)1st row is ok
本文介绍了在gridview中单击第二行时出现下拉列表错误.(帮助)第一行正常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我在网格视图的第二行中单击ddlist时出现错误
It has error when i click the ddlist in 2nd row in grid view
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim sqlsize, a, b As String
Dim rowcount As String
rowcount = GridView1.Rows.Count
' If rowcount > 0 Or rowcount < 21 Then
Dim rowIndex As Integer
'rownumber = GridView1.Rows(rowIndex).Cells(0).Text
Dim LabelL As Label = GridView1.Rows(rowIndex).Cells(1).FindControl("LabelID1")
Dim row As GridViewRow = GridView1.SelectedRow
Dim ddl1 As DropDownList = GridView1.Rows(rowIndex).Cells(3).FindControl("ddlSizeG")
' prodno = UCase(textbox2.Text)
'Dim LabelL As Label = GridView1.Rows(rowIndex).Cells(4).FindControl("LabelL")
'Dim LabelW As Label = GridView1.Rows(rowIndex).Cells(5).FindControl("LabelW")
' Label2.Text = FormatNumber(CDbl(ttloutput), "2")
'If textbox4.Text = "" Then
'Else
'End If
sqlsize = "select size_length, size_width from mpc_product_size where size_code = '" & ddl1.SelectedValue & "'"
db.OpenTableMPC(sqlsize)
If Not db.Eof Then
'If ddlSize.SelectedValue = "NA" Then
a = db.Item("size_length")
Dim txtL As TextBox = GridView1.Rows(rowIndex).Cells(4).FindControl("txtL")
txtL.Text = FormatNumber(CDbl(a), "0")
b = db.Item("size_width")
Dim txtw As TextBox = GridView1.Rows(rowIndex).Cells(5).FindControl("txtW")
txtw.Text = FormatNumber(CDbl(b), "0")
If ddl1.SelectedValue = "NA" Then
txtL.ReadOnly = False
txtw.ReadOnly = False
Else
ddl1.Focus()
txtL.ReadOnly = True
txtw.ReadOnly = True
'txtLength.Text = "0"
'txtWidth.Text = "0"
'txtLength.Enabled = True
'txtWidth.Enabled = True
'txtLength.Focus()
End If
End If
End Sub
返回代码
back code
<asp:TemplateField HeaderText="Size">
<EditItemTemplate>
<asp:DropDownList ID="ddlSizeG" runat="server" Font-Size="Small" AutoPostBack="true"
SelectedValue='<%# Bind("Temp_Size") %>' DataTextField="Size_Code" DataValueField="Size_Code"
AppendDataBoundItems="false" DataSourceID="sqlSize" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelS" runat="server" Text='<%# Bind("Temp_Size") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Length">
<EditItemTemplate>
<asp:TextBox ID="txtL" runat="server" Text='<%# Bind("Temp_Length") %>' ReadOnly="true"
Width="30px" MaxLength="10">
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelL" runat="server" Text='<%# Bind("Temp_Length") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Width">
<EditItemTemplate>
<asp:TextBox ID="txtW" runat="server" Text='<%# Bind("Temp_Width") %>' ReadOnly="true"
Width="30px" MaxLength="10">
</asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelW" runat="server" Text='<%# Bind("Temp_Width") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
推荐答案
您错过的是选择的行.
所以
what you miss is what row is selected.
So
Dim ddl As DropDownList = DirectCast(sender, DropDownList)
Dim gRow__1 As GridViewRow = DirectCast(ddl.NamingContainer, GridViewRow)
Dim myGrid As GridView = DirectCast(grow.NamingContainer, GridView)
myGrid.SelectedIndex = gRow__1.RowIndex
现在,代码现在可以查看所需的行.
Now the code nows to see what row is needed.
(grow.NamingContainer,GridView)
未声明增长名称.那么我应该如何声明呢?
谢谢.
(grow.NamingContainer, GridView)
The name grow is not declared.so how should i declare it?
Thanks.
这篇关于在gridview中单击第二行时出现下拉列表错误.(帮助)第一行正常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文