[ Assign a Textbox Value to the modal-box on the same page
已被回答]
新问题: 当我点击按钮时,为什么模态框上的按钮没有被触发?我错过了什么吗?
我添加了代码来处理服务器端的click事件:
Protected Sub Save_Button_Click(sender As Object, e As System.EventArgs) Handles Save_Button.Click
//The code goes here
End Sub
请使用标记的行查看下面的代码。
我有以下代码显示点击LinkButton后的模态框。而且,我想要做的是如何使用。
分配Textbox值我有一个gridview:
<asp:GridView ID="GV1" runat="server" DataSourceID="DS1" >
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID"/>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="Edit_Linkbutton" runat="server" CausesValidation="False" >
<asp:Image ID="Edit_Linkbutton_Image" runat="server" ImageUrl="~/edit.png"></asp:Image>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在同一页面上(这是一个div作为模式框,在Gridview上的Linkbutton点击后显示):
<div id="dialog-form" title="Modal Box">
<input type="text" id="Textbox1" />
#--------------------------------------------------------------------#
#This button didn't get fired while clicked
<asp:Button ID="Save_Button" runat="server" Text="Save"></asp:Button>
#--------------------------------------------------------------------#
</div>
然后我通过代码隐藏将一个Javascript函数附加到LinkButton:
Dim myLinkButton As LinkButton
For i As Integer = 0 To GV1.Rows.Count - 1
myLinkButton = DirectCast(GV1.Rows(i).Cells(1).FindControl("LinkButton"), LinkButton)
myLinkButton.Attributes.Add("onclick", "shopModalPopup('" + .Rows(i).Cells(0).Text & "'); return false;")
Next
Rows(i).Cells(0)
是Gridview上的第一列,它是“ID
”。
Javascript代码与Gridview代码在同一页面上:
<script>
function shopModalPopup(id){
//show the modal-box
$("#dialog-form").dialog("open");
// ---> How to assign the 'id' value to the Textbox1 on the modalbox?
}
$(function () {
$("#dialog-form").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true
});
});
</script>
上面的代码确实打开了模态框,但没有将值赋给模态框上的Textbox1。
我要问的是如何将Id
值分配给模态框中的Textbox1
?我试图搜索任何相关的文章,但他们确实将模态框分开到另一页。但在这种情况下,模态框与点击链接按钮位于同一页面上。我怎样才能做到这一点?非常感谢你。
答案 0 :(得分:1)
您可以像这样绑定javascript事件......
<asp:LinkButton ID="LinkButton" runat="server" OnClientClick="SomeMethod();" />
另外一种方法是你可以在代码中绑定javascript方法,在那里你有更多的控制权,例如here
如果你将参数传递给你的javascript函数,例如你传递给javascript中的参数,那么你应该定义你的函数,如
function SomeFunction(arg1, arg2)
{
//your statements
}
答案 1 :(得分:1)
未经测试但应该有效。
我认为你也可以避免使用内联js并绑定buttonLink的click事件
#dialog-form { display:none } /* CSS */
<script> /* JS */
/* Assuming all dialogs share the same default Settings in this grid scenario */
var grid_modal_options = {
height: 300,
width: 350,
modal: true
};
function shopModalPopup(id){
var DataField = id;
grid_modal_options.open = function(){
$('#dialog-form #Textbox1').val( DataField );
// OR
// $('#dialog-form').find('textarea').val( DataField );
};
$("#dialog-form").dialog(grid_modal_options);
}
</script>
答案 2 :(得分:1)
如果你的回帖没有解雇,你的模态很可能不在runat=server
的表单中。我在使用jQuery UI Dialog之前遇到过这种情况。您需要将模式移回<form></form>
标记内。
初始化模态后尝试此操作:
$("#dialog-form").parent().appendTo('form:first');