hi,
i am working in project. i have a problem in dropdownlist's selectedindexchanged event. when the value of district dropdownlist is changed then it is firing his own selectedindexchanged event but it does not fills licencee dropdownlist and when the value of dynamically created branddropdownlist is changed than it first fires the selectedindexchanged event of district dropdownlist and fills the licencee dropdownlist here i am giving some code which make u more understand
Imports System.Data Imports System.Data.SqlClient Imports Microsoft.VisualBasic.CompilerServices
Partial Class Transaction_Sales_Demand Inherits System.Web.UI.Page Dim objClsDemand As New ClsDemand Dim objClsPurchase As New ClsPurchaseOrderGen Shared ds As DataSet Shared dt As DataTable Public WithEvents Drpdynamic As DropDownList Public WithEvents Txtdynamic As TextBox Public unitname() As String
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
'If Not IsPostBack Then
'ds = objClsDemand.FillUnitInHeader()
'generateDynamicColumns(ds)
'GrdDemand.DataBind()
'End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
''Dim newddlBrand As DropDownList
'Dim strddlbrandID As String
'Dim ddlNewBrand As DropDownList = form1.FindControl("ddlBrand")
'strddlbrandID = ddlNewBrand.ID
ds = objClsDemand.FillUnitInHeader()
generateDynamicColumns(ds)
If Not (IsPostBack) Then
'objClsDemand.FillBrand(ddlNewBrand)
objClsDemand.FillDistrict(ddlDistrict)
End If
End Sub
Private Sub generateDynamicColumns(ByVal Ds As DataSet)
Dim i As Integer = 0
Dim h As Integer = 0
Dim pnl As Panel = New Panel()
Dim intcount As Integer = 0
' Dim dr As DataRow
'objClsDemand.FillLicencee(ddllicencee)
'objClsDemand.FillBrand(ddlBrand)
'objClsDemand.FillLabel(ddlLabel)
pnl.Controls.Clear()
dt = New DataTable()
If dt.Columns.Count = 0 Then
dt.Columns.Add("LabelCode")
dt.Columns.Add("BrandName")
dt.Columns.Add("LabelName")
dt.Columns.Add("ProofLiter")
End If
For i = 0 To Ds.Tables(0).Rows.Count - 1
dt.Columns.Add(New DataColumn(Ds.Tables(0).Rows(i)(0)))
dt.Columns.Add(New DataColumn(Ds.Tables(0).Rows(i)(1)))
Next
Dim Lbldynamic As Label
Response.Write("</table>")
Response.Write("<tr>")
For intcount = 0 To dt.Columns.Count - 1
Response.Write("<th>")
Response.Write("<b>")
Lbldynamic = New Label()
Lbldynamic.Height = "23"
Lbldynamic.Font.Bold = True
Lbldynamic.Style("Position") = "Absolute"
' txtunit(i).Style("Top") = "210px"
Lbldynamic.Style("Top") = 130
If dt.Columns(intcount).ColumnName = "BrandName" Then
Lbldynamic.Width = "140"
Lbldynamic.Style("Left") = h
h = h + 143
ElseIf dt.Columns(intcount).ColumnName = "LabelName" Then
Lbldynamic.Width = "210"
Lbldynamic.Style("Left") = h
h = h + 213
Else
Lbldynamic.Width = "110"
Lbldynamic.Style("Left") = h
h = h + 113
End If
Lbldynamic.Text = dt.Columns(intcount).ColumnName
'unitname(intcount) = Lbldynamic.Text
' Response.Write(un.GetValue(i))
Response.Write("</b>")
Response.Write("</th>")
pnl.Controls.Add(Lbldynamic)
'form1.Controls.Add(Lbldynamic)
Response.Write("<th>")
Next
Response.Write("</tr>")
h = 0
Response.Write("<tr>")
For intcount = 0 To dt.Columns.Count - 1
If dt.Columns(intcount).ColumnName = "BrandName" Or dt.Columns(intcount).ColumnName = "LabelName" Then
Response.Write("<th>")
Response.Write("<b>")
Drpdynamic = New DropDownList
If dt.Columns(intcount).ColumnName = "BrandName" Then
Drpdynamic.ID = "ddlBrand"
Drpdynamic.AutoPostBack = True
objClsDemand.FillBrand(Drpdynamic)
AddHandler Drpdynamic.SelectedIndexChanged, AddressOf Me.Drpdynamic_SelectedIndexChanged
Drpdynamic.Width = "140"
Drpdynamic.Style("Left") = h
h = h + 143
ElseIf dt.Columns(intcount).ColumnName = "LabelName" Then
Drpdynamic.ID = "ddlLabel"
Drpdynamic.AutoPostBack = True
Drpdynamic.Width = "210"
Drpdynamic.Style("Left") = h
h = h + 213
End If
Drpdynamic.Height = "23"
'Drpdynamic.Width = "110"
Drpdynamic.Font.Bold = True
Drpdynamic.Style("Position") = "Absolute"
' txtunit(i).Style("Top") = "210px"
Drpdynamic.Style("Top") = 150
'Drpdynamic.Style("Left") = h
' Response.Write(un.GetValue(i))
Response.Write("</b>")
Response.Write("</th>")
pnl.Controls.Add(Drpdynamic)
'h = h + 113
Response.Write("<th>")
Else
Response.Write("<th>")
Response.Write("<b>")
Txtdynamic = New TextBox()
If dt.Columns(intcount).ColumnName = "LabelCode" Then
Txtdynamic.ID = "txtLabelCode"
Else
Txtdynamic.ID = "txtdynamic" + intcount.ToString()
End If
AddHandler Txtdynamic.TextChanged, AddressOf Me.TextBox_TextChanged
Txtdynamic.AutoPostBack = True
Txtdynamic.Height = "23"
Txtdynamic.Width = "110"
Txtdynamic.Font.Bold = True
Txtdynamic.Style("Position") = "Absolute"
' txtunit(i).Style("Top") = "210px"
Txtdynamic.Style("Top") = 150
Txtdynamic.Style("Left") = h
' Response.Write(un.GetValue(i))
Response.Write("</b>")
Response.Write("</th>")
pnl.Controls.Add(Txtdynamic)
h = h + 113
Response.Write("<th>")
End If
Next
Response.Write("</tr>")
Response.Write("</table>")
form1.Controls.Add(pnl)
End Sub
Private Sub Drpdynamic_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Drpdynamic.SelectedIndexChanged
Try
Dim ddlNewBrand As DropDownList = New DropDownList()
ddlNewBrand = DirectCast(sender, DropDownList)
Dim ddlNewLabel As DropDownList = New DropDownList()
ddlNewLabel = form1.FindControl("ddlLabel")
If Not ddlNewBrand.SelectedValue = "" Then
objClsDemand.BrandId = ddlNewBrand.SelectedValue
End If
objClsDemand.FillLabel(ddlNewLabel)
'ddlLabel.Enabled = True
Catch ex As Exception
ProjectData.SetProjectError(ex)
clsFunctions.ErrorLog(DateAndTime.Today, "Transaction", "Demand Generation", "ddlBrand_SelectedIndexChanged", ex.Message)
ProjectData.ClearProjectError()
End Try
End Sub
Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtdynamic.TextChanged
Dim txtNewText As TextBox = New TextBox()
txtNewText = DirectCast(sender, TextBox)
Dim i As Integer = 3
Dim ddlNewBrand As DropDownList = DirectCast(sender, TextBox).FindControl("ddlBrand")
Dim ddlNewLabel As DropDownList = New DropDownList()
ddlNewLabel = form1.FindControl("ddlLabel")
If txtNewText.ID = "txtLabelCode" Then
Try
Dim dr As DataRow
objClsPurchase.LabelCode = txtNewText.Text
If Not txtNewText.Text.Equals("") Then
dr = objClsPurchase.fillDetails()
If Not IsDBNull(dr("Brandname")) Then
ddlNewBrand.SelectedItem.Text = dr("BrandName")
ddlNewBrand.Enabled = False
End If
If Not IsDBNull(dr("LabelName")) Then
If ddlNewLabel.SelectedValue = "" Then
objClsDemand.FillLabel(ddlNewLabel)
ddlNewLabel.SelectedItem.Text = dr("LabelName")
ddlNewLabel.Enabled = False
Else
ddlNewLabel.SelectedItem.Text = dr("LabelName")
ddlNewLabel.Enabled = False
End If
End If
Else
objClsPurchase.FillBrand(ddlNewBrand)
End If
Catch ex As Exception
ProjectData.SetProjectError(ex)
clsFunctions.ErrorLog(DateAndTime.Today, "Transaction", "Purchase Order Generation", "txtLabelcode_TextChanged", ex.Message)
ProjectData.ClearProjectError()
End Try
'Else
' Dim dr1 As DataRow
' For i = 4 To dt.Columns.Count - 1
' If txtNewText.ID = "txtdynamic" + i.ToString() Then
' Dim txtnew As TextBox = New TextBox()
' txtnew = form1.FindControl(dt.Columns(i + 1).ColumnName())
' txtNewText.ID = "txtdynamic" + i.ToString()
' objClsDemand.UnitId = objClsDemand.UnitId_byName(dt.Columns(i).ColumnName)
' objClsDemand.LabelId = Val(ddlNewLabel.SelectedValue)
' dr1 = objClsDemand.FillRate(txtNewText)
' txtnew.Text = dr1("LendingPrice")
' End If
' Next
End If
End Sub
Protected Sub ImageButton3_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton3.Click
'Dim txtNew As TextBox = New TextBox()
'Dim ddlnew As DropDownList = New DropDownList()
'Dim str As String
'For intcount = 0 To dt.Columns.Count - 1
' If dt.Columns(intcount).ColumnName = "BrandName" Then
' 'ddlnew = DirectCast(sender, DropDownList)
' ddlnew = form1.FindControl("ddlBrand")
' MsgBox("this is Brand ddl" + ddlnew.SelectedItem.Text)
' ElseIf dt.Columns(intcount).ColumnName = "LabelName" Then
' 'ddlnew = DirectCast(sender, DropDownList)
' ddlnew = form1.FindControl("ddlLabel")
' MsgBox("this is label ddl" + ddlnew.SelectedItem.Text)
' ElseIf dt.Columns(intcount).ColumnName = "LabelCode" Then
' 'txtNew = DirectCast(sender, TextBox)
' txtNew = form1.FindControl("txtLabelCode")
' MsgBox("this is label code txt")
' Else
' str = "txtdynamic" + intcount.ToString()
' MsgBox("this is" + str + " label code txt" + txtNew.Text)
' End If
'Next
End Sub
Protected Sub ddlDistrict_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlDistrict.SelectedIndexChanged
If Not ddlDistrict.SelectedValue = "" Then
objClsDemand.DistrictId = ddlDistrict.SelectedValue
End If
objClsDemand.FillLicencee(ddllicencee)
End Sub
End Class
thnks for help in advance