坚持动态表跨回传 [英] Persisting Dynamic Table Across postback
问题描述
我这是在code创建背后有一小桌。在VB code表填充根据从查询返回的数据当选择组合框的值。的code创建具有两个单元之一的标签,一个用于一个下拉列表在数据的每一行的行。我有麻烦preserving选择的下拉了为回发后每行创建的列表值。
当该表最初填充我的数据存储在ViewState的值并重新基于在pageLoad的这些设置的表。问题是我每次更改值的下拉菜单,然后使通过点击保存设置所有的设置回发发生不正确保存,因为它们是恢复保存,甚至被调用之前的时间。
我期待,以保持在回传的值,但仍当选择一个新的帐户从数据库中更新值。我已经尝试几种方法可以做到这一点,我的code经历了两个问题:
当我在标记表的EnableViewState =真:
当我从组合框中选择一个项目,请在下拉列表中选择的值剩下一个新的帐户时,他们应该清楚在这个时候并使用新的数据库值。
当我在标记表的EnableViewState =假:
任何回发复位dropdownlists自己的数据库值。即使单击保存这立即postsback保存数值到数据库只是重新保存其当前数据库值而忽略了选择的值。
背后code:
进口System.Data.SqlClient的进口Telerik.Web.UI公共类AccountSettings2
继承页 私人_selectedAccountID作为整数
受保护的_truckPermissions方式列表(中PermissionData2) 私人小组Page_Init(发送者为对象,E作为EventArgs的)把手Me.Init _truckPermissions =新名单(中PermissionData2) 如果不IsNothing(会话(SelectedAccountID))然后,
_selectedAccountID =会议(SelectedAccountID)
万一 如果没有的IsPostBack然后 昏暗dtAccounts作为新的DataTable(帐户)
昏暗的COL1作为的DataColumn =新的DataColumn()
col1.DataType = System.Type.GetType(System.Int32)
col1.ColumnName =帐户ID
dtAccounts.Columns.Add(COL1)
昏暗的COL2作为的DataColumn =新的DataColumn()
col2.DataType = System.Type.GetType(System.String)
col2.ColumnName =姓名
dtAccounts.Columns.Add(COL2) 昏暗ROW1作为的DataRow
昏暗ROW2作为的DataRow
昏暗ROW3作为的DataRow
昏暗ROW4作为的DataRow
ROW1 = dtAccounts.NewRow()
ROW1(帐户ID)= 1
ROW1(姓名)=科目1
dtAccounts.Rows.Add(ROW1)
ROW2 = dtAccounts.NewRow()
ROW2(帐户ID)= 2
ROW2(姓名)=帐户2
dtAccounts.Rows.Add(ROW2)
ROW3 = dtAccounts.NewRow()
ROW3(帐户ID)= 3
ROW3(姓名)=账户3
dtAccounts.Rows.Add(ROW3)
ROW4 = dtAccounts.NewRow()
ROW4(帐户ID)= 4
ROW4(姓名)=账户4
dtAccounts.Rows.Add(ROW4) rcbAccounts.DataValueField =帐户ID
rcbAccounts.DataTextField =姓名
rcbAccounts.DataSource = dtAccounts
rcbAccounts.DataBind() 万一 结束小组 保护小组的Page_Load(BYVAL发件人为对象,BYVAL E上System.EventArgs)把手Me.Load 如果没有的IsPostBack然后
如果_selectedAccountID> 0,则
rcbAccounts.SelectedValue = _selectedAccountID
SelectAccount(_selectedAccountID)
万一
万一 结束小组#REGIONUI更新 私人小组SelectAccount(帐户作为整数) _selectedAccountID =帐户ID
会议(SelectedAccountID)=帐户ID
CreateTruckPermissionsData(帐户) 结束小组 私人小组CreateTruckPermissionsData(accessTypeID作为整数) tblTruckPermissions.Rows.Clear() _truckPermissions.Add(新PermissionData2(1,权限1,1权限,accessTypeID))
_truckPermissions.Add(新PermissionData2(2,权限2,2许可,accessTypeID))
_truckPermissions.Add(新PermissionData2(3,许可3,权限3,accessTypeID))
_truckPermissions.Add(新PermissionData2(4,权限4,4权限,accessTypeID))
ViewState中(_ truckPermissions)= _truckPermissions 昏暗dtAccessTypes作为新的DataTable(AccessTypes)
昏暗的COL1作为的DataColumn =新的DataColumn()
col1.DataType = System.Type.GetType(System.Int32)
col1.ColumnName =AccessTypeID
dtAccessTypes.Columns.Add(COL1)
昏暗的COL2作为的DataColumn =新的DataColumn()
col2.DataType = System.Type.GetType(System.String)
col2.ColumnName =说明
dtAccessTypes.Columns.Add(COL2) 昏暗ROW1作为的DataRow
昏暗ROW2作为的DataRow
昏暗ROW3作为的DataRow
昏暗ROW4作为的DataRow
ROW1 = dtAccessTypes.NewRow()
ROW1(AccessTypeID)= 1
ROW1(描述)=1型
dtAccessTypes.Rows.Add(ROW1) ROW2 = dtAccessTypes.NewRow()
ROW2(AccessTypeID)= 2
ROW2(描述)=2型
dtAccessTypes.Rows.Add(ROW2)
ROW3 = dtAccessTypes.NewRow()
ROW3(AccessTypeID)= 3
ROW3(描述)=类型3
dtAccessTypes.Rows.Add(ROW3)
ROW4 = dtAccessTypes.NewRow()
ROW4(AccessTypeID)= 4
ROW4(描述)=4型
dtAccessTypes.Rows.Add(ROW4) 对于每个PD作为PermissionData2在_truckPermissions
昏暗TR作为新的TableRow()
昏暗的TD作为新的TableCell()
昏暗TD2作为新的TableCell()
昏暗l由于新标签()
朦胧DDL作为新RadDropDownList() l.Text = pd.Name
ddl.ID =ddlTruckPermission+ pd.ID.ToString()
ddl.DataTextField =说明
ddl.DataValueField =AccessTypeID
ddl.DataSource = dtAccessTypes
ddl.DataBind()
ddl.SelectedValue = pd.HasAccess td.Controls.Add(升)
td2.Controls.Add(DDL)
tr.Cells.Add(TD)
tr.Cells.Add(TD2) tblTruckPermissions.Rows.Add(TR)
下一个 结束小组 私人小组RefreshTruckSettings() 如果_selectedAccountID = 0。然后
返回
万一 对于每一个r作为的TableRow在tblTruckPermissions.Rows
对于每个C作为控制在r.Cells(1).Controls
如果c.ID.Contains(ddlTruckPermission),然后
朦胧DDL作为RadDropDownList = DirectCast(C,RadDropDownList) 昏暗Pd为PermissionData2 = _truckPermissions.Find(功能(X)= x.ID Integer.Parse(ddl.ID.Substring(0 +ddlTruckPermission。长度,ddl.ID.Length - ddlTruckPermission。长度))) 如果未IsNothing(PD)。然后
ddl.SelectedValue = pd.HasAccess
万一
万一
下一个
下一个 结束小组#END地区#REGION事件 保护小组btnSavePermissions_Click(发送者为对象,E作为EventArgs的) 如果_selectedAccountID> 0,则 昏暗permissionUpdates方式列表(中PermissionUpdate)=新名单(中PermissionUpdate)() 对于每一个r作为的TableRow在tblTruckPermissions.Rows
对于每个C作为控制在r.Cells(1).Controls
如果c.ID.Contains(ddlTruckPermission),然后
朦胧DDL作为RadDropDownList = DirectCast(C,RadDropDownList)
permissionUpdates.Add(新PermissionUpdate(Integer.Parse(ddl.ID.LastIndexOf(ddlTruckPermission)),假ddl.SelectedValue))
万一
下一个
下一个 code保存权限数据库 万一 结束小组 保护小组rcbAccounts_SelectedIndexChanged(发送者为对象,E为RadComboBoxSelectedIndexChangedEventArgs) 昏暗newIndex作为整数 如果(Integer.TryParse(e.Value,newIndex))然后
SelectAccount(newIndex)
万一 结束小组#END地区末级
<序列化>
公共类PermissionData2 私人_id作为整数
私人_name作为字符串
私人_description作为字符串
私人_hasAccess作为整数 公共属性ID()作为整数 得到
返回_id
到底得的
设置(值作为整数)
_id =价值
结束设定 高端物业 公共属性Name()作为字符串 得到
返回_name
到底得的
设置(值作为字符串)
_name =价值
结束设定 高端物业 公共属性Description()作为字符串 得到
返回_description
到底得的
设置(值作为字符串)
_description =价值
结束设定 高端物业 公共财产HasAccess()作为整数 得到
返回_hasAccess
到底得的
设置(值作为整数)
_hasAccess =价值
结束设定 高端物业 的Public Sub New() _id = 0
_name =名称
_description =说明
_hasAccess = 0 结束小组 公共子新(ID为整数,字符串类型,说明作为字符串,hasAccess作为整数) _id = ID
_name =名称
_description =说明
_hasAccess = hasAccess 结束小组末级
ASPX:
<%@页面语言=VBAutoEventWireup =假
codeBehind =AccountSettings2.aspx.vb继承=AccountSettings2%GT;!< DOCTYPE HTML PUBLIC - // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">< HTML的xmlns =http://www.w3.org/1999/xhtml>
<头ID =头像1=服务器>
<链接rel =stylesheet属性类型=文/ CSS的href =风格/ default.css/>
<标题>帐户设置< /标题>
< /头>
<身体GT;
<表ID =form1的=服务器> < ASP:的ScriptManager =服务器ID =ScriptManager1>< / ASP:ScriptManager的> < ASP:的UpdatePanel ID =UpdatePanel1=服务器的UpdateMode =始终>
<&的ContentTemplate GT; < Telerik的:radcombobox控件ID =rcbAccounts=服务器HEIGHT =200WIDTH =200
DropDownAutoWidth =已启用EmptyMessage =选择一个帐户HighlightTemplatedItems =真
EnableLoadOnDemand =真正的过滤器=包含
OnSelectedIndexChanged =rcbAccounts_SelectedIndexChanged的AutoPostBack =真
标签=帐户:皮肤=Office2010Silver/> < ASP:表ID =tblTruckPermissions=服务器的EnableViewState =真/> < ASP:按钮的ID =btnSavePermissions=服务器文本=保存的OnClick =btnSavePermissions_Click/> < /&的ContentTemplate GT;
< / ASP:的UpdatePanel>< /表及GT;
< /身体GT;
< / HTML>
我找到了一个更好的方式来处理我的方案。我用Repeater控件来处理,而不是试图做手工几乎所有的code的。我用的http://weblogs.asp.net/infinitiesloop/TRULY-Understanding-Dynamic-Controls-_2800_Part-4_2900_帮助指导我。谢谢克鲁克斯顿凯西在这方面的工作有很大帮助。
< ASP:直放站ID =rptTruckPermissions=服务器的EnableViewState =真OnItemDataBound =rptTruckPermissions_ItemDataBound>
<&HeaderTemplate中GT;
<表>
< / HeaderTemplate中>
<&ItemTemplate中GT;
&所述; TR>
< TD><%#DataBinder.Eval的(的Container.DataItem,PermissionName)%>< / TD>
< TD>< Telerik的:RadDropDownList =服务器ID =ddlTruckPermissionAccessTypes/>< / TD>
< / TR>
< / ItemTemplate中>
< FooterTemplate>
< /表>
< / FooterTemplate>
< / ASP:直放站> 保护小组的Page_Load(BYVAL发件人为对象,BYVAL E上System.EventArgs)把手Me.Load 如果没有的IsPostBack然后 如果不IsNothing(_accountDetails)然后
SelectAccount(_accountDetails.AccountID)
万一 万一 结束小组私人小组SelectAccount(帐户作为整数) _selectedAccountID =帐户ID
会议(SelectedAccountID)=帐户ID BindTruckPermissions()
结束小组 私人小组BindTruckPermissions() rptTruckPermissions.DataSource = GetPermissionData(_selectedAccountID,PermissionCategory.Truck)
rptTruckPermissions.DataBind() 结束小组保护小组rptTruckPermissions_ItemDataBound(发送者为对象,E为RepeaterItemEventArgs) 如果e.Item.ItemType = ListItemType.Item或者e.Item.ItemType = ListItemType.AlternatingItem然后 昏暗 - [R作为DataRowView的= CTYPE(e.Item.DataItem,DataRowView的)
朦胧DDL作为RadDropDownList = CTYPE(e.Item.FindControl(ddlTruckPermissionAccessTypes),RadDropDownList)
选择案例R(PermissionTypeID) 案例PermissionType.LegacyBasic
ddl.DataSource = GetLegacyWebAccessTypes(PermissionType.LegacyBasic)
案例PermissionType.LegacyPublisher
ddl.DataSource = GetLegacyWebAccessTypes(PermissionType.LegacyPublisher)
结束选择 'ddl.ID =ddlTruckPermission+ pd.ID.ToString()
ddl.DataTextField =说明
ddl.DataValueField =AccessTypeID
ddl.DataBind() 如果IsDBNull以便(R(AccessTypeID))然后,
ddl.SelectedValue = LegacyWebAccessType.NoAccess
其他
ddl.SelectedValue = R(AccessTypeID)
万一 万一 结束小组
I have a table which is created in the code behind. In the vb code the table is populated based on the data returned from a query when a combobox value is selected. The code creates a row with two cells one for a label and one for a drop down list for each row in the data. I'm having trouble preserving the selected drop down list values that are created for each row after postback.
When the table is initially populated I store the data in a ViewState value and recreate the table based on these settings in PageLoad. The problem is every time I change values for the drop downs and then cause a postback to happen by clicking save settings all of the settings are incorrectly saved because they are reverted before the save is even called.
I'm looking to maintain the values across postbacks but still update the values from the database when a new account is selected. I've attempted several ways to do this and experienced two issues with my code:
When I have EnableViewState = "true" on the table in markup: When I select an item from the combobox to select a new account the selected values in the drop down lists are remaining when they should clear at this time and use the new database values.
When I have EnableViewState = "false" on the table in markup: Any postback resets the dropdownlists to their database values. Even clicking "Save" which immediately postsback to save the values to the database will just resave their current database values and ignore the selected values.
code behind:
Imports System.Data.SqlClient
Imports Telerik.Web.UI
Public Class AccountSettings2
Inherits Page
Private _selectedAccountID As Integer
Protected _truckPermissions As List(Of PermissionData2)
Private Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
_truckPermissions = New List(Of PermissionData2)
If Not IsNothing(Session("SelectedAccountID")) Then
_selectedAccountID = Session("SelectedAccountID")
End If
If Not IsPostBack Then
Dim dtAccounts As New DataTable("Accounts")
Dim col1 As DataColumn = New DataColumn()
col1.DataType = System.Type.GetType("System.Int32")
col1.ColumnName = "AccountID"
dtAccounts.Columns.Add(col1)
Dim col2 As DataColumn = New DataColumn()
col2.DataType = System.Type.GetType("System.String")
col2.ColumnName = "Name"
dtAccounts.Columns.Add(col2)
Dim row1 As DataRow
Dim row2 As DataRow
Dim row3 As DataRow
Dim row4 As DataRow
row1 = dtAccounts.NewRow()
row1("AccountID") = 1
row1("Name") = "Account 1"
dtAccounts.Rows.Add(row1)
row2 = dtAccounts.NewRow()
row2("AccountID") = 2
row2("Name") = "Account 2"
dtAccounts.Rows.Add(row2)
row3 = dtAccounts.NewRow()
row3("AccountID") = 3
row3("Name") = "Account 3"
dtAccounts.Rows.Add(row3)
row4 = dtAccounts.NewRow()
row4("AccountID") = 4
row4("Name") = "Account 4"
dtAccounts.Rows.Add(row4)
rcbAccounts.DataValueField = "AccountID"
rcbAccounts.DataTextField = "Name"
rcbAccounts.DataSource = dtAccounts
rcbAccounts.DataBind()
End If
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If _selectedAccountID > 0 Then
rcbAccounts.SelectedValue = _selectedAccountID
SelectAccount(_selectedAccountID)
End If
End If
End Sub
#Region "UI Updates"
Private Sub SelectAccount(accountID As Integer)
_selectedAccountID = accountID
Session("SelectedAccountID") = accountID
CreateTruckPermissionsData(accountID)
End Sub
Private Sub CreateTruckPermissionsData(accessTypeID As Integer)
tblTruckPermissions.Rows.Clear()
_truckPermissions.Add(New PermissionData2(1, "Permission 1", "Permission 1", accessTypeID))
_truckPermissions.Add(New PermissionData2(2, "Permission 2", "Permission 2", accessTypeID))
_truckPermissions.Add(New PermissionData2(3, "Permission 3", "Permission 3", accessTypeID))
_truckPermissions.Add(New PermissionData2(4, "Permission 4", "Permission 4", accessTypeID))
ViewState("_truckPermissions") = _truckPermissions
Dim dtAccessTypes As New DataTable("AccessTypes")
Dim col1 As DataColumn = New DataColumn()
col1.DataType = System.Type.GetType("System.Int32")
col1.ColumnName = "AccessTypeID"
dtAccessTypes.Columns.Add(col1)
Dim col2 As DataColumn = New DataColumn()
col2.DataType = System.Type.GetType("System.String")
col2.ColumnName = "Description"
dtAccessTypes.Columns.Add(col2)
Dim row1 As DataRow
Dim row2 As DataRow
Dim row3 As DataRow
Dim row4 As DataRow
row1 = dtAccessTypes.NewRow()
row1("AccessTypeID") = 1
row1("Description") = "Type 1"
dtAccessTypes.Rows.Add(row1)
row2 = dtAccessTypes.NewRow()
row2("AccessTypeID") = 2
row2("Description") = "Type 2"
dtAccessTypes.Rows.Add(row2)
row3 = dtAccessTypes.NewRow()
row3("AccessTypeID") = 3
row3("Description") = "Type 3"
dtAccessTypes.Rows.Add(row3)
row4 = dtAccessTypes.NewRow()
row4("AccessTypeID") = 4
row4("Description") = "Type 4"
dtAccessTypes.Rows.Add(row4)
For Each pd As PermissionData2 In _truckPermissions
Dim tr As New TableRow()
Dim td As New TableCell()
Dim td2 As New TableCell()
Dim l As New Label()
Dim ddl As New RadDropDownList()
l.Text = pd.Name
ddl.ID = "ddlTruckPermission" + pd.ID.ToString()
ddl.DataTextField = "Description"
ddl.DataValueField = "AccessTypeID"
ddl.DataSource = dtAccessTypes
ddl.DataBind()
ddl.SelectedValue = pd.HasAccess
td.Controls.Add(l)
td2.Controls.Add(ddl)
tr.Cells.Add(td)
tr.Cells.Add(td2)
tblTruckPermissions.Rows.Add(tr)
Next
End Sub
Private Sub RefreshTruckSettings()
If _selectedAccountID = 0 Then
Return
End If
For Each r As TableRow In tblTruckPermissions.Rows
For Each c As Control In r.Cells(1).Controls
If c.ID.Contains("ddlTruckPermission") Then
Dim ddl As RadDropDownList = DirectCast(c, RadDropDownList)
Dim pd As PermissionData2 = _truckPermissions.Find(Function(x) x.ID = Integer.Parse(ddl.ID.Substring(0 + "ddlTruckPermission".Length, ddl.ID.Length - "ddlTruckPermission".Length)))
If Not IsNothing(pd) Then
ddl.SelectedValue = pd.HasAccess
End If
End If
Next
Next
End Sub
#End Region
#Region "Events"
Protected Sub btnSavePermissions_Click(sender As Object, e As EventArgs)
If _selectedAccountID > 0 Then
Dim permissionUpdates As List(Of PermissionUpdate) = New List(Of PermissionUpdate)()
For Each r As TableRow In tblTruckPermissions.Rows
For Each c As Control In r.Cells(1).Controls
If c.ID.Contains("ddlTruckPermission") Then
Dim ddl As RadDropDownList = DirectCast(c, RadDropDownList)
permissionUpdates.Add(New PermissionUpdate(Integer.Parse(ddl.ID.LastIndexOf("ddlTruckPermission")), False, ddl.SelectedValue))
End If
Next
Next
' Code to save permissions to database
End If
End Sub
Protected Sub rcbAccounts_SelectedIndexChanged(sender As Object, e As RadComboBoxSelectedIndexChangedEventArgs)
Dim newIndex As Integer
If (Integer.TryParse(e.Value, newIndex)) Then
SelectAccount(newIndex)
End If
End Sub
#End Region
End Class
<Serializable>
Public Class PermissionData2
Private _id As Integer
Private _name As String
Private _description As String
Private _hasAccess As Integer
Public Property ID() As Integer
Get
Return _id
End Get
Set(value As Integer)
_id = value
End Set
End Property
Public Property Name() As String
Get
Return _name
End Get
Set(value As String)
_name = value
End Set
End Property
Public Property Description() As String
Get
Return _description
End Get
Set(value As String)
_description = value
End Set
End Property
Public Property HasAccess() As Integer
Get
Return _hasAccess
End Get
Set(value As Integer)
_hasAccess = value
End Set
End Property
Public Sub New()
_id = 0
_name = Name
_description = Description
_hasAccess = 0
End Sub
Public Sub New(id As Integer, name As String, description As String, hasAccess As Integer)
_id = id
_name = name
_description = description
_hasAccess = hasAccess
End Sub
End Class
aspx:
<%@ Page Language="vb" AutoEventWireup="false"
CodeBehind="AccountSettings2.aspx.vb" Inherits="AccountSettings2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<link rel="stylesheet" type="text/css" href="styles/default.css" />
<title>Account Settings</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
<asp:UpdatePanel id="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<telerik:RadComboBox ID="rcbAccounts" runat="server" Height="200" Width="200"
DropDownAutoWidth="Enabled" EmptyMessage="Select an Account" HighlightTemplatedItems="true"
EnableLoadOnDemand="true" Filter="Contains"
OnSelectedIndexChanged="rcbAccounts_SelectedIndexChanged" AutoPostBack ="true"
Label="Accounts: " Skin="Office2010Silver" />
<asp:Table ID="tblTruckPermissions" runat="server" EnableViewState="true" />
<asp:Button ID="btnSavePermissions" runat="server" Text="Save" OnClick="btnSavePermissions_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
I found a much better way to handle my scenario. I used the repeater control to handle almost all of the code instead of trying to do it manually. I used http://weblogs.asp.net/infinitiesloop/TRULY-Understanding-Dynamic-Controls-_2800_Part-4_2900_ to help guide me. Thank you to Casey Crookston for much help in working on this.
<asp:Repeater ID="rptTruckPermissions" runat="server" EnableViewState="true" OnItemDataBound="rptTruckPermissions_ItemDataBound">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# DataBinder.Eval(Container.DataItem, "PermissionName") %></td>
<td><telerik:RadDropDownList runat="server" ID="ddlTruckPermissionAccessTypes" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If Not IsNothing(_accountDetails) Then
SelectAccount(_accountDetails.AccountID)
End If
End If
End Sub
Private Sub SelectAccount(accountID As Integer)
_selectedAccountID = accountID
Session("SelectedAccountID") = accountID
BindTruckPermissions()
End Sub
Private Sub BindTruckPermissions()
rptTruckPermissions.DataSource = GetPermissionData(_selectedAccountID, PermissionCategory.Truck)
rptTruckPermissions.DataBind()
End Sub
Protected Sub rptTruckPermissions_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim r As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim ddl As RadDropDownList = CType(e.Item.FindControl("ddlTruckPermissionAccessTypes"), RadDropDownList)
Select Case r("PermissionTypeID")
Case PermissionType.LegacyBasic
ddl.DataSource = GetLegacyWebAccessTypes(PermissionType.LegacyBasic)
Case PermissionType.LegacyPublisher
ddl.DataSource = GetLegacyWebAccessTypes(PermissionType.LegacyPublisher)
End Select
'ddl.ID = "ddlTruckPermission" + pd.ID.ToString()
ddl.DataTextField = "Description"
ddl.DataValueField = "AccessTypeID"
ddl.DataBind()
If IsDBNull(r("AccessTypeID")) Then
ddl.SelectedValue = LegacyWebAccessType.NoAccess
Else
ddl.SelectedValue = r("AccessTypeID")
End If
End If
End Sub
这篇关于坚持动态表跨回传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!