如何解决获取存储在 CheckBoxList 表中的特定用户首选项作为选定项
我将用户偏好值存储在由 ,
示例 Football,Tennis,Swimming,Hiking
分隔的一列表格中
表用户偏好
ID USERID Preferences
1 X1234 Football,Hiking
2 X2345 Cricket
3 X3456 Dancing,Reading
4 X4567 Games,Cricket,Tennis
首选项存储在表中,我需要在 asp.net 网络表单应用程序的 CheckBoxList 中将特定用户首选项显示为 Selected
,以便用户可以查看他/她的首选项或根据需要更新它们
<asp:CheckBoxList ID="chkLstPrefences" runat="server" DataTextField="Preferences" DataValueField="Preferences" >
我不知道如何使它工作我正在读取用户首选项并将它们转换为字符串数组,但我不确定如何在 CheckBoxList 中匹配并向用户显示所选项目
例如用户 X1234
string sUserPreferences = "Football,Hiking"
string[] strAryUserPreferences = sUserPreferences.Split(',');
如何将 strAryUserPreferences
中的用户首选项与 CheckBoxList chkLstPrefences 中的值进行匹配
解决方法
我认为您可以将域绑定到您的复选框列表,然后遍历每个复选框列表项并验证是否在您的用户首选项中。 像这样的东西(对不起,如果它不完美,但我现在没有视觉工作室)..
def fill_vec(s,r,l):
dfl_array_vec= df_array_vec
for i in range (0,l):
arraynew=pd.DataFrame()
for j in range (0,s):
for k in range (0,s):
found = dfl_array_vec.at[j,k]
foundS= math.sin(found)
foundC= math.cos(found)
SurroundS= 0
SurroundC=0
am=0
if not j == 0:
SurroundS = SurroundS +math.sin(dfl_array_vec.at[j-1,k])
SurroundC = SurroundC + math.cos(dfl_array_vec.at[j - 1,k])
am += 1
if not j == s-1:
SurroundS = SurroundS + math.sin(dfl_array_vec.at[j + 1,k])
SurroundC = SurroundC + math.cos(dfl_array_vec.at[j + 1,k])
am += 1
if not k == 0:
SurroundS = SurroundS + math.sin(dfl_array_vec.at[j,k-1])
SurroundC = SurroundC + math.cos(dfl_array_vec.at[j,k - 1])
am += 1
if not k == s-1:
SurroundS = SurroundS + math.sin(dfl_array_vec.at[j,k + 1])
SurroundC = SurroundC + math.cos(dfl_array_vec.at[j,k + 1])
am += 1
SurroundS = (SurroundS/am)
SurroundC = (SurroundC/am)
distance = math.sqrt(SurroundS**2+ SurroundC**2)
SurroundS = SurroundS * 1/distance
SurroundC = SurroundC *1/distance
foundS += SurroundS
foundC += SurroundC
foundS = foundS/2
foundC = foundC/2
angle =math.atan2(foundS,foundC)
arraynew.at[j,k] =(angle*180/math.pi) +180
dfl_array_vec = arraynew
print(i)
return dfl_array_vec
def makeArrayVec(s):
dfl_array_vec=pd.DataFrame()
for i in range (0,s):
for j in range (0,s):
zval=(random.randrange(0,360))
dfl_array_vec.at[i,j] = zval
return dfl_array_vec
df_array_vec= makeArrayVec(s=size)
df_array_vec= fill_vec(s=size,r = 10,l=100)
def vecfieldshow(data):
xi=np.linspace(0,size,num=size)
yi = np.linspace(0,num=size)
X,Y=np.meshgrid(xi,yi)
U=np.sin(data.values)
V=np.cos(data.values)
fig=plt.figure()
ax=fig.add_subplot(111)
Q=ax.quiver(X,Y,U,V)
plt.show()
,
首先将列的值存储在某个 List 中,然后循环遍历 ChkListPreference 的每个项目,将存储在 lstPrefList 中的每个值作为嵌套 for 循环,当任何值匹配时,将其标记为 Selected in ChkListPreference
// store value in lstPrefList
List<string> lstPrefList = ValuesFromDB;
if ((chkLstPrefences.Items.Count > 0) && (lstPrefList.Count > 0))
{
for (int i2=0; i2 <chkLstPrefences.Items.Count; i2++)
{
for ( int i=0; i <lstPrefList.Count; i++)
{
if (chkLstPrefences.Items[i2].Value.ToString().Trim() == lstPrefList[i].ToString().Trim())
{
chkLstPrefences.Items[i2].Selected = true;
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。