在gridview中单击第二行时出现下拉列表错误.(帮助)第一行正常 [英] drop down list error when click at 2nd row.in gridview .(help)1st row is ok

查看:52
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆