我有一个文本框附加到htmleditorextender,该文本框存在于usercontrol中,并且此用户控件存在于更新面板中的数据列表控件中。我点击了一个编辑链接按钮,显示文本框,此时我想将焦点设置到我试过的文本框。
protected void lnkEditResponse_OnCommand(object sender, CommandEventArgs e)
{
if (QuestionList.Items.Count == 0)
{
log.Warn("There are no items in the data list.");
return;
}
try
{
DataListItem item = QuestionList.Items[int.Parse(e.CommandArgument.ToString())];
if (item == null)
{
log.Warn("No item found for the index " + e.CommandArgument);
return;
}
Panel responseLabelPanel = item.FindControl("ResponseLabelPanel") as Panel;
Panel responseInputPanel = item.FindControl("ResponseInputPanel") as Panel;
TextBox textArea = item.FindControl("QuestionResponseTextBox") as TextBox;
responseLabelPanel.Visible = false;
responseInputPanel.Visible = true;
ScriptManager mgr = ScriptManager.GetCurrent(this.Page);
(responseInputPanel.FindControl("LinkClearAll") as LinkButton).Visible = true;
(responseInputPanel.FindControl("lnkClear") as LinkButton).Visible = true;
ScriptManager.RegisterStartupScript(this, this.GetType(), "f", "document.getElementById('" + textArea.ClientID + "').focus();", true);
}
catch (Exception ex)
{
log.Error("Exception while handling file delete.", ex);
}
}
我也尝试过使用texbox并进行.focus()但是它没有用,有一些方法可以完成这项工作。
PS:非常重要的是我将焦点设置在文本框中当前文本的末尾(文本框加载了数据库中的数据)
答案 0 :(得分:0)
使用客户端脚本进行聚焦。
HtmlEditorExtendor
在页面中加载许多内容。这可能会导致问题。
尝试使用下面的jQuery可以帮助你。
例如:
$('#target').focus();