Asp .NET使用控件常见问题大全(设计时选中、Button、TextBox、DropDownList、GridView、UpdatePanel 等)

 Asp .NET控件使用常见问题及技巧大全

在asp .net开发时,使用控件过程常有些小问题,每次都去找有点麻烦,在此收集遇到的问题,不断补充……

O、通用

1、如何画出控件的选中状态,像设计时的那样

【解决方案】可通过换图片来实现:示例代码如下(btnAdd为一服务端按钮控件)

btnAdd.Attributes("onMouseOver") = "javascript:this.src='AN_Add_Over.gif';" btnAdd.Attributes("onMouseOut")= "javascript:this.src='AN_Add.gif';" btnAdd.Attributes("onMouseDown") = "javascript:this.src='AN_Add_Down.gif';"

一、DropDownList

1、如何选择选项:

【问题描述】DropDownList控件不能直接赋值给Text属性来选择。

【解决办法】

string id="1"; DropDownList1.Items.FindByValue(id).Selected=true;

2、不能在 DropDownList 中选择多个项:

【问题描述】当选择一个选项时(源代码如下),出现“不能在 DropDownList 中选择多个项”的错误提示。

DropDownList1.Items.FindByValue(id).Selected=true;

【解决办法】

DropDownList1.ClearSelection(); DropDownList1.Items.FindByValue(id).Selected=true;

 

二、TextBox

1、获取焦点时,选中内容

【技巧】

<asp:TextBox ID="TextBoxUserID" runat="server" style="width:160px" onfocus="javascript:this.select()"/> <input type="text" onfocus="this.select()" value="sssssbbbbccc"/>

2、Password风格时,赋值

【问题描述】Password风格时,直接对Text属性赋值无效。

【解决办法】

textBoxPasswordField.Attributes.Add("value", "mypass");

3、回车转移焦点到下一控件

【方法一:C#后台代码】

this.txt_userName.Attributes.Add("onkeydown","if(event.keyCode==13)event.keyCode=9");

【方法二:Asp.NET 前台代码】

<ASP:TextBox onkeydown="if(window.event.keyCode==13){window.event.keyCode=9;}">

【方法三:通用】

<mce:script language="javascript" for="document" event="onkeydown"><!-- if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!='') event.keyCode=9; // --></mce:script>

判断是否为button, 是因为在HTML上会有type="button";判断是否为submit,是因为HTML上会有type="submit";判断是否为reset,是因为HTML上的"重置"应该要被执行;判断是否为空,是因为对于HTML上的"<a>链接"也应该被执行,这种情况发生的情况不多,可以使用"tabindex=-1"的方式来取消链接获得焦点.

三、GridView

1、获取CheckBoxField列值

【问题描述】直接通过GridView的Cells属性是无法获取其值的,其中Text属性为空串。

【解决办法】

/*----------------------------------------- // 前台代码 <asp:GridView ID="GridView1" runat="server" Width="418px"> <Columns> <asp:CheckBoxField DataField="是否有效" HeaderText="有效性" /> </Columns> </asp:GridView> -----------------------------------------*/ //后台代码: CheckBox cb = (CheckBox)GridView_Users.SelectedRow.Cells[1].Controls[0]; bool bResult= cb.Checked;

2、GridView无数据时不显示的问题

【问题描述】绑定数据时,如果DataTable对象行数为0,则添加一空行,然后修改显示样子。

【解决办法】

protected bool GridViewBind(GridView gridview, string sqlcmd) { try { DataTable dt = new DataTable(); SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmd, GetConnectionString()); sqlda.Fill(dt); gridview.AutoGenerateColumns = true; gridview.Font.Size = FontUnit.XSmall; if (dt.Rows.Count == 0) // 添加空记录 { dt.Rows.Add(dt.NewRow()); gridview.DataSource = dt; gridview.DataBind(); int columnCount = gridview.Rows[0].Cells.Count; gridview.Rows[0].Cells.Clear(); gridview.Rows[0].Cells.Add(new TableCell()); gridview.Rows[0].Cells[0].ColumnSpan = columnCount; gridview.Rows[0].Cells[0].Text = "没有记录."; dt.Rows.Clear(); } else { gridview.DataSource = dt; gridview.DataBind(); } } catch (Exception ex) { SetErrorMessage(string.Format("绑定 GridView 时出现异常:/n ", ex.Message)); return false; } return true; }

四、UpdatePanel(AJAX)

1、UpdatePanel中运行脚本

【解决办法】

ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "test", "alert('哈哈,执行了这个脚本哦。')", true);

 

 

 

你可能感兴趣的:(JavaScript,html,.net,asp,button,textbox)