有没有办法为CheckedListBox设置多列显示成员而无需创建将属性值合并在一起的新类?比如重写DisplayMember之类的东西?
我正在使用C#4.0 VS 2015
答案 0 :(得分:1)
您不需要覆盖if(isset($_GET['cu_id'])){
$id = $_GET['cu_id'];
$query = mysqli_query($conn,"SELECT * FROM customer WHERE cu_id = '$id'") or
die (mysqli_error($query));
while($row = mysqli_fetch_assoc($query)){
echo '
<form method="POST">
<input type="hidden" name="id" value ="'.$row['cu_id'].'"/>
<input type="text" name="c_name" value ="'.$row['cu_name'].'"/>
<input type="text" name="c_email" value ="'.$row['email'].'"/>
<input type="text" name="c_phone" value ="'.$row['phone'].'"/>
<input type="text" name="coun_id" value ="'.$row['cu_id'].'"/> //delete this line if they cant edit it
<input type="text" name="card_id" value ="'.$row['cu_id'].'"/>//delete this line if they cant edit it
<input type="submit" name="submit" value ="Send"/>
</form>';
}
if(isset($_POST['submit'])){
$id = $_POST['id'];
$c_name = $_POST['c_name'];
$c_email = $_POST['c_email'];
$c_phone = $_POST['c_phone'];
$query = mysqli_query($conn,"UPDATE customer SET cu_name = '$c_name',
email = '$c_email', phone = '$c_phone' WHERE cu_id = '$id'") or
die (mysqli_error($query));
if ($query){
echo '<script>alert("Update Successful!");</script>';
}
}
。相反,您可以处理DisplayMember
Format
事件,这样您就可以为每个元素提供自定义显示值。
在ListControl中的每个可见项之前引发Format事件 格式化。处理此事件可让您访问字符串 显示此列表项,通过的
CheckedListBox
属性 ListControlConvertEventArgs
事件的事件参数包含Value
属性,该属性是项目背后的对象,因此您可以在此处混合一些属性并将结果分配给ListItem
。
例如,假设您在e.Value
中显示List<Product>
,我们可以通过以下方式自定义外观:
checkedListBox1