第一个,如何点击一个linkButton,动态的添加textbox的控件(数目不确定),添加后如何取出textbox的值,思路我会,但不知道具体代码怎么写,会的帮忙写段代码吧第二个,绑定DROPDOWNLIST后的问题
我的代码:SqlDataReader sdr = SqlHelper.executeReader("select * from table",);
this.ddlDent.DataSource = sdr;
this.ddlDent.DataTextField = "DentName";
this.ddlDent.DataValueField = "DentID";
this.ddlDent.DataBind();
this.ddlDent.Items.Insert(0, new ListItem("--请选择--", "0"));
显示是显示成功了,但是如果用户不选择内容项,也就是说选择了默认的new ListItem("--请选择--", "0"),而没有选择下拉列表的项,就会产生错误(这个dropdownlist的ID是一个表的主键,所以没有"0"这一项)
请问,怎么写一段代码,如果用户不选择其中的项,就警告用户没有选择呢?我用了custmovalidator做,可是没成功,会的写下代码吧,谢谢了解决好了我会给看情况给各位加分的
我的代码:SqlDataReader sdr = SqlHelper.executeReader("select * from table",);
this.ddlDent.DataSource = sdr;
this.ddlDent.DataTextField = "DentName";
this.ddlDent.DataValueField = "DentID";
this.ddlDent.DataBind();
this.ddlDent.Items.Insert(0, new ListItem("--请选择--", "0"));
显示是显示成功了,但是如果用户不选择内容项,也就是说选择了默认的new ListItem("--请选择--", "0"),而没有选择下拉列表的项,就会产生错误(这个dropdownlist的ID是一个表的主键,所以没有"0"这一项)
请问,怎么写一段代码,如果用户不选择其中的项,就警告用户没有选择呢?我用了custmovalidator做,可是没成功,会的写下代码吧,谢谢了解决好了我会给看情况给各位加分的
<FONT face="宋体">
<P>
<asp:LinkButton id="LinkButton1" runat="server">添加</asp:LinkButton></P>
<P>
<asp:Table id="Table1" runat="server"></asp:Table></P>
</FONT>
<asp:Button id="Button1" runat="server" Text="取值"></asp:Button>
</form>
private void LinkButton1_Click(object sender, System.EventArgs e)
{
AddTextBox(10);
}
private void Button1_Click(object sender, System.EventArgs e)
{
AddTextBox(10);
string strResult=string.Empty;
ListControls(this,ref strResult);
Response.Write(strResult);
}
/// <summary>
/// 返回控件中的值
/// </summary>
/// <param name="page"></param>
/// <param name="strResult"></param>
private void ListControls(System.Web.UI.Control page,ref string strResult)
{
foreach (System.Web.UI.Control control in page.Controls)
{
if (control.HasControls())
{
ListControls(control,ref strResult);
}
if (control is TextBox)
{
if ((control as TextBox).ID.Substring(0,8)=="TextBox_")//如果是动态添加的
{
strResult=strResult+","+(control as TextBox).Text;
}
}
}
}
private void AddTextBox(int iCount)
{
for (int i= 0 ;i<iCount;i++)
{
TextBox tb = new TextBox();
tb.ID="TextBox_"+i.ToString();
tb.Text=i.ToString();
TableRow tr = new TableRow();
TableCell tc = new TableCell();
tc.Controls.Add(tb);
tr.Cells.Add(tc);
Table1.Rows.Add(tr);
}
}问题2:
邦定之后给一个默认选中的项。
SqlDataReader sdr = SqlHelper.executeReader("select * from table",);
this.ddlDent.DataSource = sdr;
this.ddlDent.DataTextField = "DentName";
this.ddlDent.DataValueField = "DentID";
this.ddlDent.DataBind();
this.ddlDent.Items.Insert(0, new ListItem("--请选择--", "0"));
this.ddlDent.SelectedItem.Selected=false;
this.ddlDent.Items[0].Selected=true;
{
Response.Write("<script langrage=javascript>alert('清选择');</script>");
return;
}
或者用验证控件
{
if(document.getElementById('ddlDent').value==0)
{alert('qingcuanze');
return false;}
}
<script language="javascript" type="Text/javascript">
//动态添加工序
//添加一个div,并在div放控件
function AddProcessDiv()
{
var parentDiv=document.getElementById('parentDiv');
var childDiv=document.createElement("div");
var i=parentDiv.children.length;
childDiv.id="div"+i;
childDiv.innerHTML="<table class='tableFrame' width='100%'><tr><td>工序描述</td><td><input name='procDescribe' type='text' style='width:270px;' onblur=\"this.value=this.value.replace(/,/g,',')\"/></td>"+
"<td>具体明细</td><td><input name='procDetail' type='text' style='width:300px;' onblur=\"this.value=this.value.replace(/,/g,',')\"/></td>"+
"<td>金额</td><td><input name='procMoney' type='text' style='width:50px;' onblur=\"this.value=this.value.replace(/,/g,',')\"/></td>"+
"<td><input id='btnDel' type='button' value='删除' onclick='DeleteDiv("+i+")' /></td></tr></table>";
parentDiv.appendChild(childDiv);
}
//删除div
function DeleteDiv(str)
{
var parentDiv=document.getElementById('parentDiv');
var temp=parentDiv.children[str];
temp.removeNode(true);
for(var i = 0;i < parentDiv.children.length;i++)
{
parentDiv.childNodes[i].value = i;
parentDiv.childNodes[i].childNodes[1].outerHTML="<input id='btnDel' type='button' value='删除' onclick='DeleteDiv("+i+")' />";
}
}
</script>
-------
C# Code
string strProcDescribe = Request.Form["procDescribe"];//工序描述集合
string strProceDetail = Request.Form["procDetail"];//工序具体明细集合
string strProcMoney = Request.Form["procMoney"];//工序金额集合
string[] strDescribe = strProcDescribe.Split(',');//拆分工序描述
string[] strDetail = strProceDetail.Split(',');//拆分具体明细
string[] strMoney = strProcMoney.Split(',');//拆分金额
{
document.all.DropDownList1.selectedIndex==0
{alert('OK?');return false;}}
我用CUSTOMVALIDATOR写的,但没实现
谁会的写段代码上来
第一个问题 同4楼一致
第二个问题
想创建一个ListItem 对象
在把 0 项添加进去
然后其他的从数据库里面查出来 在循环添上去
不能用绑定的 ListItem lst = new ListItem("--请选择--", "0");
_DropDownList1.Items.Add(lst);
foreach (DataRow dr in dt.Rows)
{
ListItem list = new ListItem(dr[1].ToString(), dr[0].ToString());
_DropDownList1.Items.Add(list);
}
说明一下,如果不加上最后的这一项 也就是 "--请选择--"
直接绑定,然后取出SELECTEDVALUE并写入数据库是没有问题的,我试过但是this.ddlDent.Items.Insert(0, new ListItem("--请选择--", "0"));这一句加上后
就有问题了,就有错误产生
我现在是想实现的是,不选择就提示用户选择下拉项,谢谢,其余的办法我会
第二个,你在取值的时候判断一下ddlDent.SelectedIndex != 0(你插入的位置就是0)不就行了?