单击button1后,显示0,为什么?如何获得DropDownList控件的正确宽度?谢谢!
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!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 runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>Item 1</asp:ListItem>
<asp:ListItem>Item 2</asp:ListItem>
</asp:DropDownList>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = DropDownList1.Width.Value.ToString();
}
}
答案 0 :(得分:0)
这是因为未设置值Width。在html中,如果未设置宽度值,则让浏览器选择大小。
此外,asp.net引擎只有主机属性才能呈现正确的Html。如果你查看文本框的代码,你会看到如果你放了一个witdh,它会产生一个style =“width:yourvalue”。 ASP.net在服务器端运行,因此它不知道控件的实际大小。
如果您确实需要下拉列表的客户端大小,请明确指定它,或使用一些自定义javascript来计算控件的实际大小,然后将计算大小传递给隐藏字段。在后面的代码中,您可以从Page.Request.Form集合中获取值。 如果您需要进一步解释,请澄清您的需求。