![](/img/trans.png)
[英]How to display an error message box in a web application asp.net c#
[英]Web application with generated HTML code consist of checkbox not display message. (Asp.net, C#)
我發現奇怪的是,當我選中某些復選框(生成的HTML代碼)時,子功能沒有警告(或顯示消息)正在選中哪個復選框。
我想念什么嗎?
在WebForm.aspx內部
<script type="text/javascript">
function sub()
{
for (i=0; i<arrChecks.length; i++)
{
var attribute = arrChecks[i].getAttribute("xid")
if (attribute == elementName)
{
// if the current state is checked, unchecked and vice-versa
if (arrChecks[i].checked)
{
arrChecks[i].checked = false;
} else {
arrChecks[i].checked = true;
alert("Checked!");
}
} else {
arrChecks[i].checked = false;
}
}
}
</script>
在WebForm.cs內部
protected void ButtonCheckDate_Click(object sender, EventArgs e)
{
SqlConnection conn = ConnectDB("Data Source=JACKSERVERA;Initial Catalog=tablea;User Id=tableuser;Password=tablepassword");
if ((TextBox2.Text != null) && (TextBox2.Text != ""))
{
try
{
String res = "";
SqlCommand command = conn.CreateCommand();
SqlDataReader reader;
command.CommandType = System.Data.CommandType.Text;
command.CommandText = "SELECT * from overviewtable where [dated] = @PDATED";
command.Parameters.AddWithValue("@PDATED", TextBox2.Text);
command.Connection = conn;
sqlstmt.Text = command.CommandText;
conn.Open();
reader = command.ExecuteReader();
if (reader.HasRows)
{
res = res + "<form name=\"input\" runat=\"server\"><table border=1>";
while (reader.Read())
{
res = res + "<tr>";
string thetime = (string)reader["time"];
string thevenue = (string)reader["venue"];
int numfreeseat = (int)reader["freeseat"];
int occupiedseat = 0;
SqlCommand bkcommand = conn.CreateCommand();
SqlDataReader bookinglist;
bkcommand.CommandType = System.Data.CommandType.Text;
bkcommand.CommandText = "SELECT count(*) from venuea where [dated] = @PDATED";
bkcommand.Parameters.AddWithValue("@PTIME", thetime);
bkcommand.Connection = conn;
sqlstmt.Text = bkcommand.CommandText;
bookinglist = bkcommand.ExecuteReader();
while (bookinglist.Read())
{
if (bookinglist.HasRows)
{
occupiedseat = (int)bookinglist.GetValue(0);
}
}
int leftnumofseat = numfreeseat - occupiedseat;
string color = "";
Boolean fullyoccupied = false;
if (leftnumofseat > 0)
{
if (leftnumofseat == numfreeseat)
{
// white
color = "#FFFFFF";
}
else
{
// light gray - partial occupied
color = "#B8B8B8";
}
}
else
{
// dark gray - fully occupied
color = "#505050";
fullyoccupied = true;
}
res = res + "<td bgcolor=\"" + color + "\">";
res = res + "Available: " + leftnumofseat + "/" + numfreeseat + "";
res = res + "</td>";
string checkboxval = TextBox2.Text + "_" + thetime + "_" + thevenue;
res = res + "<td>";
if (fullyoccupied == false)
{
res = res + "<input type=\"checkbox\" name=\"xid\" value=\"" + checkboxval + "\" runat=\"server\" />";
}
else
{
res = res + "FULL";
}
res = res + "</td>";
res = res + "</tr>";
}
res = res + "</table><input type=\"submit\" value=\"Submit\" OnClick=\"sub\" runat=\"server\"></form>";
}
LabelDateSelection.Text = res;
conn.Close();
}
catch (Exception err)
{
errormsg.Text = err.Message;
}
}
else
{
LabelDateSelection.Text = "Enter Date!";
}
}
從您的代碼中刪除此部分,並查看它是否可以運行runat=\\"server\\"
我不確定是否可以像嘗試一樣創建和ASP.net服務器控件,並且在服務器渲染runat=\\"server\\"
時將輸出發送到客戶端。 檢查您的HTML代碼並查看其外觀。
動態創建HTML控件或創建簡單的HTML控件(如果可以的話)。
看這個例子,如何實際地創建控件
http://msdn.microsoft.com/zh-CN/library/kyt0fzt1%28v=vs.100%29.aspx
除了KnowledgeSeeker提出的要點外,您不能以該樣式創建ASP控件。
您可以通過使用FindControl方法定位元素,然后從中獲取值或在C#添加代碼中獲取已創建復選框的值,類似於:
for (int i = 0; i < 5; i++)
{
CheckBox chk = new CheckBox();
chk.ID = Convert.ToString(i);
chk.Text = Convert.ToString(i);
form1.Controls.Add(chk);
}
在這種情況下,您要從0循環到5,並創建復選框並將這些控件添加到表單中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.