gpt4 book ai didi

c# - 如何为我的 ASP.NET TextBox 获取正确的 ClientID?

转载 作者:行者123 更新时间:2023-11-30 20:14:30 28 4
gpt4 key购买 nike

我在我创建的 ASP.NET 项目中创建了一个 Table 的子类。该表使用一个类来格式化和创建 TableRows 和 TableCells,我们可以称之为 RowCreator。所以 MyTable 调用 rowCreator.CreateRow() 并返回一个 TableRow,里面有很多好东西。

在此 TableRow 中有一个 TextBox,它应该在 onblur 事件上触发 javascript 方法,该事件由 RowCreator 类添加。

textBox.Attributes.Add("onblur", "javascriptMethod('"+ textbox.ClientID + "');");

我还尝试创建了一个 textBox 的子类,它实现了一个添加 onblur 事件的方法:

Attributes.Add("onblur", "javascriptMethod('"+ this + "');")

这是行不通的。 ID 只是文本框子类的命名空间。

而且 JavaScript 方法非常简单:

函数 javascriptMethod(boxId) {
警报(boxId);
}

问题是,我猜这是因为文本框控件尚未添加到控件集合中,所以 boxId 不是正确的客户端 ID。它与服务器端 ID 相同。有没有一种方法可以获得正确的 ID 而不必先在页面上使用 Controls.Add 添加行?还有其他建议吗?

我什至这样做的原因是每当它被更改时从 javascript 函数读取文本框内容。也许有更好的方法来做到这一点?

最佳答案

您可以将 javascript 调用更改为:

textBox.Attributes.Add("onblur", "javascriptMethod(this);");

然后您可以在您的 javascript 方法中访问文本框:

function javascriptMethod(textbox) { alert(textbox.id); }

这样您就不需要使用文本框控件的 ClientID。

关于c# - 如何为我的 ASP.NET TextBox 获取正确的 ClientID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457117/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com